现在来讨论一下Android 中Activity 的四种启动模式
- standard
- singleTop
- singleTask
- singleInstance
首先说明一下Activity设置启动模式的方法:
设置Activity的启动模式,只需要在AndroidManifest.xml里对应的标签设置android:launchMode属性,例如:
<activity
android:name=".OtherActivity"
android:launchMode="standard" />
下面是四种启动模式的区别:
- standard
- 该模式是Activity的默认启动模式,Activity是叠加在一个栈里面的,可以重复启动相同的Activity,按返回键会从站顶一个一个的后退。
具体过程如下图:
- 该模式是Activity的默认启动模式,Activity是叠加在一个栈里面的,可以重复启动相同的Activity,按返回键会从站顶一个一个的后退。
singleTop 该模式下,可以有多个实例,但是不允许多个相同Activity叠加。如果一个Activity是以singleTop模式启动的话,如果该Activity已经在栈顶,将无法再启动该Activity,如下图:
singleTask 该Activity只有一个实例。在同一个应用程序中启动他的时候,若Activity不存在,则会在当前栈顶创建一个新的实例,若存在,则会把栈中在其之上的其它Activity 销毁掉。如下图:
singleInstance,只有一个实例,并且这个实例独立运行在一个栈中,这个栈只有这个实例,不允许有别的Activity存在。
以上就是Activity的四种启动模式的启动方式和区别了。如果看图,都可以比较直观的看到四个方式的使用方式了。