启动模式有四种:standard、singleTop、singleTask、singleInstance,可以在AndroidManifest.xml中通过给<activity>标签android:launchMode属性来选择启动模式
1、standard模式
是活动默认的启动模式,在不进行显示指示的情况下,所有活动都会自动使用这种启动模式。
特点:每启动一次活动,不管有没有已经存在的实例,都会重新创建一个新的活动实例存放在栈中。当点击back时候,会依次出栈。
2、singleTop模式
是当启动一个活动时,如果发现这个活动已经存在于返回栈的栈顶(注意:是栈顶)时,则直接调用这个活动,不会再创建新的活动实例。
注:如果启动的活动并未处于栈顶的位置时,则还是会创建出新的实例。
3、singleTask模式
singleTask是singleTop的改进篇。当活动的启动模式指定为singleTask,每次启动该活动的时候,系统会在返回栈中检查是否存在该活动的实例(注意:不仅限于栈顶了,而是整个栈中),如果发现已经存在则直接使用该实例,并把这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。
4、singleInstance模式
singleInstance模式下 会有一个单独的返回栈来管理这个活动,其他未设置为singleInstance的活动则默认为standard模式,存放在栈中。
这样其他程序和我们的程序可以共享这个活动的实例。