一.先理解栈的概念(放置Activity实例的容器)
1.Task(线性表)
任务栈Task , 用来放置Activity实例的容器 , 先进后出 , 主要有2个基本操作:压栈和出栈 , 其所存放的Activity是不支持重新排序的 , 只能根据压栈和出栈操作更改Activity的顺序 。
2.app启动时 , 系统会为它默认创建一个对应的Task , 用来放置根Activity
ps: Activity之间可以相互启动 , 当前应用的Activity可以去启动其他应用的Activity(相机),那么就是说栈的功能可以把其它app的activity加入到自己app的栈里.
所以Task可以理解为负责管理所有用到的Activity实例的栈,但是.android5.0之后 跨进程调用activity,这个activity会被放入到一个新的栈中 。
二.启动模式(只能根据压栈和出栈操作更改Activity的顺序,所以是启动模式是以哪种姿势入栈)
通过在AndroidManifest文件中的属性andorid:launchMode来设置或者通过Intent的flag来设置
1.standard(常规姿势入栈)
默认模式 。在这个模式下 , 都会默认创建一个新的实例 。因此 , 在这种模式下 , 可以有多个相同的实例 , 也允许多个相同Activity叠加 。应用场景:绝大多数Activity 。
2.singleTop(栈顶复用姿势入栈)==FLAG_ACTIVITY_SINGLE_TOP
栈顶复用模式 , 如果要开启的activity在任务栈的顶部已经存在 , 就不会创建新的实例 , 而是调用 o
推荐阅读
- Android P开发者预览显示谷歌包含了The Notch
- 为何被全网年轻人吐槽 南京鸡鸣寺
- 全网短视频发布助手哪个好用?有哪些助手?
- 最全的各种折纸技巧 叠纸大全
- 做电商最全面的免费插件 生意参谋插件有哪几个
- 史上最全面的庐山旅游风景区攻略 庐山为什么不能随便去
- 最全免费音乐app推荐 wav文件怎么剪辑
- 最全五笔口诀顺口溜 五笔打字口诀快速记忆
- js日历插件日期选择器 android日期选择器全屏显示
- 目前网友好评最多的神级网络小说 全网评分最高的小说