在Android开发中,我们需要根据指导的需要为每个活动设定恰当的启动模式。活动的启动模式总共有4总,分别是standard,singleTop,singleTask,singleInstance。
启动模式在AndoridManifest.xml中设定,代码如下:
<activity android:name="com.mountain.studyactivity.FirstActivity"
android:launchMode="standard"/>
四种启动模式
1.standard
是活动的默认的启动模式。在该模式下,每当启动一个新的活动,它就会在返回栈中处于栈顶的位置。使用该模式时,无论这个活动是否已经在返回栈中存在,每次启动都会创建一个新的实例。
2.singleTop
当活动的启动模式指定为singleTop,在启动活动时如果发现返回栈的栈顶已经是该活动,则可以直接使用它,不会再创建新的活动实例。
3.singleTask
singleTask模式也就是栈内复用模式,什么是栈内复用模式呢?就是每次指定活动时,系统会在返回栈中检查是否存在该活动的实例,如果没有发现就会创建一个新的活动实例,如果发现一家存在则直接使用该实例,并把在这个活动之上的所有活动清出栈。
4.singleInstance
singleInstance模式是4种模式中最特殊也是最复杂的一个,与前三种模式不同的是,指定为该模式的活动都会用一个新的返回栈来管理和这个活动。假如Activity2为singleInstance的启动模式,运行程序首先进入的是Activity1,在Activity1启动Activity2,这时就会有一个新的返回栈来管理Activity2,在Activity2中又启动了Activity1,这时又回到了原来的返回栈。
此时处于Activity1,返回栈也只有Activity1一个活动实例,当我们按back健返回时,返回栈已经空了,于是就会去到别的返回栈,也就是Activity2所在的返回栈,再按back健后,所有的返回栈都是空,退出程序。