Activity相关类

ActivityStackSupervisor,顾名思义,就是用来管理ActivityStack的。
ActivityStackSupervisor.java:

    /** The stack containing the launcher app */
    private ActivityStack mHomeStack;

    /** The non-home stack currently receiving input or launching the next activity. If home is
     * in front then mHomeStack overrides mFocusedStack.
     * DO NOT ACCESS DIRECTLY - It may be null, use getFocusedStack() */
    private ActivityStack mFocusedStack;//当前焦点

    /** All the non-launcher stacks */
    private ArrayList<ActivityStack> mStacks = new ArrayList<ActivityStack>();

在这里插入图片描述

在这里插入图片描述

一个ActivityRecord对应一个Activity,保存了一个Activity的所有信息;但是一个Activity可能会有多个ActivityRecord,因为Activity可以被多次启动,这个主要取决于其启动模式。
一个TaskRecord由一个或者多个ActivityRecord组成,这就是我们常说的任务栈,具有后进先出的特点。
一个应用可能有多个TaskRecord
ActivityStack则是用来管理TaskRecord的,包含了多个TaskRecord。

/**
 * State and management of a single stack of activities.
 */
final class ActivityStack {
//----
}

作者:四月葡萄
参考:https://www.jianshu.com/p/94816e52cd77
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

发布了184 篇原创文章 · 获赞 19 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/zhoumingsong123/article/details/84995116