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

Activity启动流程(三)

 

 

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的栈顶。

 

相关文章:

  • 2021-05-18
  • 2021-05-14
  • 2022-01-15
  • 2021-06-17
  • 2022-12-23
  • 2021-05-19
猜你喜欢
  • 2021-12-12
  • 2021-08-05
  • 2021-11-29
相关资源
相似解决方案