启动模式是Activity启动时的模式,有两种设置方式:
- 在AndroidManifest.xml中的标签的android:launchMode属性设置
- 通过代码intent.addFlags(Intent.FLAG_ACTIVITY_*)来设置
四种启动模式
standard(标准模式):
每次激活Activity时(Context.startActivity),都创建Activity实例,并放入Context所处的任务栈,注意,只有Activity才能以standard模式启动,因为只有已存在的activity才有任务栈。
singleTop(栈顶模式):
如果任务栈栈顶的Activity.startActivity(自己),则不会创建新的activity,但会调用activity.onNewIntent()回调方法,否则创建Activity实例。
singleTask (栈内模式)
如果要start的那个Activity在任务栈中存在该实例,则不会创建,只会把该Activity以上的Activity实例都弹出任务栈(销毁),则activity 暴露至栈顶,同样,它会调用activity.onNewIntent()回调方法。
singleInstance:
如果应用A的任务栈中创建了MainActivity实例,如果应用B也要激活应用A的MainActivity,则不需要创建,两应用共享该Activity实例。