Activity任务和回退栈学习总结

本文详细介绍了Android中的回退栈和任务管理,包括Activity如何在回退栈中移动,singleTask和singleInstance启动模式的工作原理,taskAffinity属性的影响,以及如何清理返回栈。重点讨论了Android系统如何在不同场景下管理和调度Activity,帮助开发者理解Android应用的运行机制。
摘要由CSDN通过智能技术生成
一、Android回退栈、task说明
设备主屏幕是大多数任务的起点。当用户触摸应用启动器中的图标(或主屏幕上的快捷方式)时,该应用的任务将出现在前台。 如果应用不存在任务(应用最近未曾使用),则会创建一个新任务,并且该应用的“主”Activity 将作为堆栈中的根 Activity 打开。
堆栈中的 Activity 永远不会重新排列,仅推入和弹出堆栈:由当前 Activity 启动时推入堆栈;用户使用“返回”按钮退出时弹出堆栈。 因此,返回栈以“后进先出”对象结构运行。
任务是一个有机整体,当用户开始新任务或通过“主页”按钮转到主屏幕时,可以移动到“后台”。 尽管在后台时,该任务中的所有 Activity 全部停止,但是任务的返回栈仍旧不变,也就是说,当另一个任务发生时,该任务仅仅失去焦点而已。如果用户稍后通过选择开始任务的启动器图标来恢复任务,则任务将出现在前台并恢复执行堆栈顶部的 Activity。

1、Android中task其实是指由ActivityRecord组成的栈,多个task以栈的形式组成了回退栈,ActivityManagerService移动回退栈里的ActivityRecord时以task为单位移动。
ActivityManagerService不仅会往回退栈里添加新的ActivityRecord,还会移动回退栈里的ActivityRecord,移动时以task为单位进行移动,而不会移动单个AcitivityRecord。比如手机上切换不同应用,其实是切换一组不同task. <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值