Android启动模式(launchMode)


对比:

类型 含义 说明
standard 标准模式 每次调用会创建新的实例
singleTop 栈顶单例 若页面位于栈顶,复用原实例,若不在栈顶,同标准模式相同
singleTask 栈内单例 每个任务栈仅存在单个实例
singleInstance 全局单例 在整个应用中仅存在单个实例
singleInstancePerTask 栈内根单例 每个任务里存在于根部的单个实例

用法:

1、 使用AndroidManifest文件
当您在AndroidManifest文件中声明 Activity 时,您可以指定该 Activity 在启动时如何与任务关联。
2、 使用 Intent 标记
当您调用 startActivity()时,可以在 Intent 中添加一个标记,用于声明新 Activity 如何与当前任务相关联。

注意:启动模式中,Intent 标记优先级>AndroidManifest文件优先级

跳转:

第一类:standard/singleTop 最小单元是页面,返回时按照任务栈位置,采用先入后出原则依次出栈;
第二类:singleTask/singleInstance/singleInstancePerTask,先任务栈->页面,返回时按照任务栈次序,根据栈当前状态,采用先入后出原则依次出栈;


多栈返回说明

第三类:使用FLAG_ACTIVITY_CLEAR_TOP移除返回页面上的所有页面;


参考:https://developer.android.com/guide/components/activities/tasks-and-back-stack

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