【Android】10.0 活动的启动模式

1.0 在实际项目中,我们应该根据特定的需求为每个活动指定恰当的启动模式。

2.0 启动模式一共有4种,可以在AndroidMainifest.xml中通过过给<activity>标签指定android:launchMode属性来选择启动模式。

2.1 standard:  是活动默认的启动模式。在standard模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶位置。。同时系统不会在乎这个活动是否已经在返回栈中存在,每次启动活动都会创建该活动的一个新的实例。

因此如果一个活动有个按钮控件就是启动它本身,那么按一次就会存一次进入返回栈中,按三次近三次,同样也需要按Back键三次才能全部退出来。

2.2 singleTop: 在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。

2.3 singleTask:  每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果没有发现则会创建一个新的活动实例。同一个活动上下文最多只会存在一个。

2.4 singleInstance:这个是这4种启动模式最特殊也是最复杂的一个。它会启动一个新的返回栈来管理这个活动(其实如果singleTask模式指定了不同的任务(活动)队列(taskAffinity),也会启动一个新的返回栈)。

2.4 singleInstance模式使用场景模拟:假如我们一个活动允许其他程序调用,如果想实现其他程序和自己的程序共享这个活动的实例。这时其他三种模式肯定做不到,因为每个程序都会有自己的返回栈,同一个活动在不同的返回栈中入栈时必定会创建一个新的实例。

而使用singleInstance模式下会有一个单独的返回栈来管理活动,不管哪个应用程序来访问这个活动,都会共用同一个返回栈,完美解决共享活动实例问题。

 

 3.0 

猜你喜欢

转载自www.cnblogs.com/xiaofu007/p/10331880.html