AMS如何管理咱们众多的Activity的呢?

要想知道这个问题的答案,咱们须要看一下ActivityStackSupervisor.java这个文件。它是全部Activity的监管者。java

这里咱们盗用一个图来理一下:3d

总结

咱们须要理清楚一个逻辑的包含关系便可cdn

1.在AMS中,应用的每一个Activity都有一个对应得ActivityRecord对象来描述记录;对象

2.咱们常说的栈实际是TaskRecord,里面有一个ArrayList列表,保存着不少ActivityRecord对象,存放的逻辑顺序是后打开的页面,放在这个列表的后面;blog

3.再往上呢,就是ActivityStack,它有一个ArrayList保存着使用过的TaskRecord对象,变量名称是mTaskHistory;it

4.而后往上是ActivityDisplay,它里面也有一个ArrayList,保存着不少ActivityStack对象;io

5.最后一层是ActivityStackSupervisor,里面有一个装不少ActivityDisplay对象的SparseArray。class

相关文章
相关标签/搜索