Android ActivityManager一些心得

最近在处理ActivityManager问题中得到的一些心得分享给大家,如有错误请指教。

活动管理(activitymanager)

       activitymanagerservice是以栈的管理活动的。每一个活动属于一个任务,一个任务可以看做一系列活动集合;task内部以堆栈的概念管理着;每次切换一个新的任务的时候;都会将所属活动切换到前台,并将活动置于栈顶;之后才会进行恢复的过程。

       所有的任务共同存储在ArrayList中,每当发生任务切换的时候,都要执行ArrayList的删除(delete)和移动(move)工作任务和活动任务图,


栈的工作任务图

在上图中我们可以看到A,B,C,DE,F代表着6个活动;颜色相同的活动属于一个task.F位移栈顶;表示用于当前的交互的活动;F所属任务也称为前台任务;所以从图上可以看出;任务只有概念之分;并没有额外的数据结构单独来实现;task是以ArrayList方式实现的,index索引为0时;Activity A位移栈底;index为5时;活动F位移栈顶。

当F中startActivity,A会发生什么场景?这些设置到活动launchmode和intent中的启动关于这部分的可以参考任务和返回堆栈

下面用一张图来表示Task  and back stack来做一点补充:


task  and  back  stack用例

上图中启动目标的意图标志都是采用默认值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,482评论 25 708
  • 想起一个写一个 1. Collection├List│├LinkedList│├ArrayList│└Vector...
    next_discover阅读 1,081评论 2 22
  • 哎呀呀 ,马上就要面临找工作了,媛媛心里紧张呀. 作为一个即将毕业的Android程序媛,开始面临找工作了,...
    左神话阅读 4,886评论 7 59
  • 【十年冶诗·十七】 【说不出的】 当我只是说不出口 路口是哪盏灯照亮我 除了风以外 还有很多人与我一样回家 店外的...
    陆诗明阅读 233评论 0 4
  • 2017年5月5日 桃子今日工作总结: 一、今日学习中收获: 1.早上去团山幼儿园上课,老师说中班的口才小学员如果...
    最美锁骨阅读 232评论 0 0