Activity一共有以下四种launchMode
- standard
- singleTop
- singleTask
- singleInstance
1、standard
是默认的启动模式,不用为<activity>配置android:launchMode属性即可,当然也可以指定值为standard。
特点:每次跳转都会在task中生成一个新的Activity实例(不管栈里面原来是否创建过,都会生成新的实例),并且该Acticity实例放于栈结构的顶部。
2、singleTop
需要<activity>指定属性android:launchMode="singleTop"。
特点:跳转时系统会先在栈结构中寻找要跳转的Activit是否位于栈顶,如果是则不再生成新的实例,直接使用。
3、singleTask
需要<activity>指定属性android:launchMode="singleTask"。
特点:跳转过程中系统会检查栈中是否有该Activity实例,如果没有就创建。如果有就不再生成新的实例,并且将该Activity之上的Activity实例统统出栈,将本Activity变为栈顶对象,显示到幕前。
4、singleInstance
需要<activity>指定属性android:launchMode="singleInstance"。
特点:这种启动模式比较特殊,因为它会启用一个新的栈结构,将Acitvity放置于这个新的栈结构中,并保证不再有其他Activity实例进入。