你将了解:
- 什么是栈
- 改变Activity任务栈的方法
- Activity有哪些启动模式
一、什么是栈
在Android中栈有自己的结构特点
- 后进先出
- 位于栈顶处于焦点状态,用户可见,当按下back键栈内的Activity会一个一个的出栈并调用onDestory()方法
- 栈中没有Activity系统将回收这个栈,
- 每个App默认只有一个栈以APP包名来命名。
二、改变Activity任务栈的方法
- 改变清单文件xml方式
android:launchMode="standard|singleInstance|singleTask|singleTop"
来控制Acivity任务栈。
三、Activity启动模式对比
在对比之前我统一说一哈(针对本小节)
三回调表示:
Activity的启动三回调(onCreate()->onStart()->onResume())
Activity用A表示
A启动模式 | A栈内情况 | 启动A的处理方式 |
---|---|---|
standard(标准模式) | 不管栈内A存在与否 | 创新A压入栈顶,三回调执行 |
singleTop(栈顶复用模式) | 栈内有A,A位于栈顶(使用方式1),A不位于栈顶(方式同standard) | 方式1:不重建A三回调不执行,A的onNewIntent()被回调, |
singleTask(栈内复用模式) | 有A(方式1) | 方式1:A被拉到栈顶onNewIntent()并清理在当前A上面的所有A(先检查是否有栈,无就先建栈,) |
singleInstance(单栈模式) | 一A一栈 | A单独位于一个任务栈,启动A都不会重创A复用就是 |