Android 可以通过在AndroidManifest.xml文件中 修改 activity 标签下的android:launchMode 来设置相关的启动模式,共有四种模式可以设置 standard,singleTop,singleTask,singleInstance 其中当不设置android:launchMode的时候默认是使用standard。
下面我们来了解一下相关参数值的意义,
standard
该参数标志着当打开一个activity的时候,不论任务栈中是否存在相关的activity,都会新建一个activity添加到任务栈中。
singleTop
当打开一个activity的时候,会先检测当前任务栈的栈顶是否有该activity,如果有这复用该activity(不再执行onCreate(),执行onNewIntent()),如果没有该activity则创建新的activity并加入任务栈。
singleTask
当打开一个activity的时候,会先检测当前任务栈中是否有该activity,如果有则复用该activity,否则创建新的activity并添加到任务栈中。
singleInstance
当打开一个activity的时候,如果该activity不存在,则会创建一个新的任务栈并将该activity添加到新建的任务栈中,否则直接将该activity所在的任务栈置顶,并显示该activity
Android 中除了在AndroidManifest.xml中修改启动模式还可以通过在Java代码中卫intent设置flag来实现启动模式的修改。
FLAG_ACTIVITY_NEW_TASK:
效果等同于在xml中设置singleTask
FLAG_ACTIVITY_SINGLE_TOP:
效果等同于在xml中设置singleTop