在Android Studio 中 activity的四中启动模式:
提示:根据需求为每个Activity指定恰当的启动方式,从而避免一些问题
- standard
- singleTop
- singleTask
- singleInstance
设置activity的启动模式:
提示:只需要在AndroidManifest.xml里对应的<activity>标签设置Android:launchMode属性
例如:
<activity
android:name=".MainActivity"
android:launchMode="standard" />
四种启动模式区别:
1、standard
标准启动模式,也是默认启动模式,不设置android:launchMode属性的话默认为standard启动模式。即,每次跳转启动Activity,均会创建新的实例。下面是standard模式下的示意图:
2、singleTop
顶部单例模式,可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例。下面是singleTop模式下的示意图:
3、singleTask
当Activity不存在,则会在当前task创建一个新的实例,若存在,则会把task中两个相同Activity之前的其它Activity销毁。下面是singleTask模式下的示意图:
4、singleInstance
只有一个实例,并且这个实例独立运行在一个task中,这个task只有这个实例,不允许有别的Activity存在。这是一个极端的模式。
singleInstance一般适用于需要在系统中只存在一个实例的场景,比如Android系统的来电页面,多次来电均使用的是一个Activity。
下面是singleInstance模式下的示意图: