【Android 应用开发】Android 返回堆栈 与 任务
I . 返回堆栈 概念
返回堆栈概念 :
① 任务 : Android 中的任务就是 Android 应用 与 用户进行交互的 Activity 界面集合 ;
② 返回堆栈 : 将 Activity 界面依次放入 一个 堆栈 数据结构中 , 这个堆栈就是 返回堆栈 ;
③ 作用 : 返回堆栈的作用是 管理 Android 不同层级界面的打开关闭顺序 ;
注意 : 任务是多个 Activity , 不是一个 ;
II . 返回堆栈 运行机制
返回堆栈 运行机制 :
① 根 Activity : 用户在 Launcher 应用中 , 即主屏幕界面 , 没有打开任何应用 ; 此时点击应用图标 , 启动应用 , 如果该应用没有被打开过 , 系统就会创建一个新的 返回堆栈 , 这个应用的 Main Activity 就会作为该 返回堆栈的 根 Activity , 放在堆栈的最底部 ;
② 入栈 和 出栈 : 返回堆栈 只有入栈 和 出栈 两个操作 , 入栈 很容易理解 , 就是打开一个界面 , 堆栈的管理主要是对出栈进行管理 , 出栈可以退出 一个 或 多个 , 不同的操作和配置 会弹出数量不等的 Activity , 这是 返回堆栈 管理的核心 ;
返回堆栈 , 不会有排序行为 , 只有 入栈 和 出栈 两种操作 ;
③ 入栈原理 : 在 Activity 1 中启动 Activity 2 , 后者就会入栈 , 放到返回堆栈的栈顶 , 之前的 Activity 1 仍然会滞留在 返回堆栈 中 , 状态处于 “已停止” 状态 ; 下图是 连续 启动 3 个 Activity 后的返回堆栈 示例图 :
④ 出栈原理 : 用户按下返回键时 , 返回堆栈 栈顶的元素就会被 弹出堆栈 , 该 Activity 会被销毁 , 上一个 Activity 会恢复 ; 下图是在上面入栈的基础上 , 按下返回键 , 将 Activity 3 弹出了返回堆栈 ;
⑤ 全部出栈 : 如果用户连续按返回键 , 直到回到主界面 , 此时该应用的所有 Activity 都退出了 , 任务随着 返回堆栈 的退栈清空 而 销毁 ;
III . 任务
1 . 任务简介 :
① 任务本质 : 任务是 Activity 界面集合 ;
② 后台任务 : 用户打开新的应用 , 或 按下了 Home 键 , 会导致原来的 任务 转变成 “后台任务” ;
③ 后台任务 返回堆栈 : 任务进入后台 , 其 返回堆栈不会改变 , 堆栈中的 Activity 全部进入 “已停止” 状态 ;
④ 后台任务 转为 前台 : 当用户按下 Home 键 进入主界面 , 点击菜单键 , 选择原来的应用 ( 不同手机操作不同 ) , 该后台任务就会转为前台任务 , 其返回堆栈中的 Activity 会保持进入后台的状态 ;
注意 : 后台任务中的 Activity , 可能会因为内存紧张被销毁 ;
2 . Activity 实例化多次问题 : 如果某个 Activity 可以从多个 Activity 中启动 , 堆栈中会出现多个相同的 Activity , 该 Activity 被实例化了多次 , 可以通过设置启动模式 , 避免此类问题 ;
文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。
原文链接:hanshuliang.blog.csdn.net/article/details/103985497
- 点赞
- 收藏
- 关注作者
评论(0)