Android Activity启动模式

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

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_NO_HISTORY
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED

你可能感兴趣的:(Android Activity启动模式)