android中四种活动启动模式的区别

首先说一下启动模式在哪定义

在定义活动的时候加上android:launchMode="xxx"

四种启动模式分别是standard,singleTop,singleTask和singleInstance

1.standard

standard是活动的默认启动方式,没启动一个新的活动,他就会在返回栈中入栈,并处于栈顶,这种方式并不会考虑栈中是否已经存在相同的活动,它会直接创建一个新的活动实例

2.singleTop

这种方式会检查栈顶是否存在相同的活动实例,如果存在,那么他并不会创建新的活动实例,而是使用已存在栈顶的活动

3.singleTask

singleTask是singleTop的改进,singleTop只是检查栈顶是否存在相同活动,而singleTask是检查整个活动栈是否存在该活动,如果存在,就直接将在该活动上面的活动出栈,进而使用该活动,如果没有就创建一个

4.singleinstance

为什么要有这个模式,你可以想一想,如果有别的程序要用到该活动,想要共享这个活动,前面三种方式是实现不了的,因为每一个程序都会有自己的返回栈,同一个活动在不同的返回栈中入栈肯定创建了新的实例,而singleinstance模式会有有一个单独的返回栈,不管哪个程序来访问,都共用一个返回栈,也就解决了

总结起来就是按照上面的排序,第一个是最不推荐的,尽量使用第三个,如果活动是可以共享给别的程序的,就使用第四个

好啦,如果觉得我写的有什么错误,欢迎指正

猜你喜欢

转载自blog.csdn.net/abc_123456___/article/details/84075733