zoukankan      html  css  js  c++  java
  • Activity启动流程(三)

    这里对启动Activity过程中涉及到的ActivityStackTaskRecordActivityRecordActivityStackSupervisor进行简单的分析,实际上一张时序图就可以看明白了。相关的代码都在上面了:代码分析

    sequenceDiagram
    participant ActivityStarter
    participant ActivityStack
    participant TaskRecord
    note over ActivityStarter:startActivity()
    ActivityStarter–>>ActivityStarter:new ActivityRecord()
    note over ActivityStarter:setTaskFromReuseOrCreateNewTask()
    ActivityStarter->>ActivityStack:createTaskRecord
    note over ActivityStack:createTaskRecord()
    ActivityStack->>TaskRecord:new TaskRecord()
    note over TaskRecord:TaskRecord()
    TaskRecord–>>ActivityStack:TaskRecord
    ActivityStack–>>ActivityStack:addTask //存入mTaskHistory
    ActivityStack–>>ActivityStarter:TaskRecordk
    note over ActivityStarter:addOrReparentStartingActivity()
    ActivityStarter->>TaskRecord:addActivityToTop //添加Activity到mActivities栈顶
    note over TaskRecord:addActivityToTop()
    TaskRecord–>>TaskRecord:addActivityAtIndex()
    TaskRecord–>>ActivityStarter:返回

    简单总结:
    1.startActivity时首先会创建一个ActivityRecord。
    2.如果有需要,会创建一个TaskRecord,并把这个TaskRecord加入到ActivityStack中。
    3.将ActivityRecord添加到TaskRecord的栈顶。

     
  • 相关阅读:
    111111
    国际化(提取代码中文)
    分库操作(无事务)
    Nignx(四)location语法详解
    Nginx项目笔记
    SAX:进行XML解析
    流处理PDF、Base64
    JAVA8:stream流
    JPA一对多,多对一映射
    有关技术站点
  • 原文地址:https://www.cnblogs.com/mingfeng002/p/11754088.html
Copyright © 2011-2022 走看看