对比:
类型 | 含义 | 说明 |
---|---|---|
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
网友评论