4种启动模式:standard、singleTop、singleTask、singleInstance
使用方式:在activity节点下,使用android:launchMode;
例如:android:launchMode="singleTop"
1、standard:是活动默认的启动方式,在不进行显式指定的情况下,所有的活动都会自动使用这种启动模式,在standard模式(即默认情况下),每当启动一个新的活动,他就会在返回栈中入栈,并且处于栈顶的位置。
对于使用standard模式的活动,系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动的一个新的实例!
比如:当你打开三次同一个activity,返回栈中就会存在三个从下到上排序!
2、singleTop:当活动启动模式指定为singleTop,在启动活动时如果发现返回栈顶已经是该活动,则认为可以直接使用它,不再创建新的活动实例。
比如:连续开启同一个MyActivity多次时,只会使用栈顶的第一个activity,仅按一次back键就可以退出。
当时当此MyActivity并未处于栈顶位置时,这时再启动MyActivity,还会创建新的实例的。
比如:开启FirstActivity然后开启SecondActivity,再开启FirstActivity就会再创建一个FirstActivity,当退出时,是FirstActivity-> SecondActivity->FirstActivity->.........
3、singleTask:当活动的启动模式指定为singleTask,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把在这个活动之上的所有活动统统出栈(会走onDestroy()方法),如果没有发现就会创建一个新的活动实例。
4、singleInstance:指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动。好处是便于另外的程序进行使用,因为他是单独的一个栈!
退出操作:例如secondActivity设置为singleInstance模式,FirstActivity与ThreeActivity模式正常,启动FirstActivity->secondActivity->ThreeActivity;
退出时:ThreeActivity退出->FirstActivity退出->secondActivity退出!