【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 被实例化了多次 , 可以通过设置启动模式 , 避免此类问题 ;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值