Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Activity

Lifecycle

点击跳转然后返回

sequenceDiagram
Activity1->>Activity1: onCreate()、onStart()、onResume()
Activity1->>Activity2: 点击跳转
Activity1->>Activity1: onPause()
Activity2->>Activity2: onCreate()、onStart()、onResume()
Activity1->>Activity1: onStop()
Activity2->>Activity1: 返回
Activity2->>Activity2: onPause()
Activity1->>Activity1: onRestart()、onStart()、onResume()
Activity2->>Activity2: onStop()、onDestory()
Loading

在 onCreate() 中直接跳转

sequenceDiagram
Activity1->>Activity1: onCreate()、onStart()、onResume()、onPause()
Activity2->>Activity2: onCreate()、onStart()、onResume()
Activity1->>Activity1: onStop()
Loading

在 onCreate() 中先跳转后直接 finish()

sequenceDiagram
Activity1->>Activity1: onCreate()
Activity2->>Activity2: onCreate()、onStart()、onResume()
Activity1->>Activity1: onDestory()
Loading

直接在 onCreate() 中 finish()

sequenceDiagram
Activity1->>Activity1: onCreate()
Activity1->>Activity1: onDestory()
Loading

旋转重建的生命周期

其实跟 finish() 后重新打开是一致的,走完了全部生命周期

sequenceDiagram
Activity->>Activity: onCreate()、onStart()、onResume()
Activity->>Activity: onPause
Activity->>Activity: onStop
Activity->>Activity: onDestory
Activity->>Activity: onCreate()、onStart()、onResume()
Loading

startActivity() 过程分析

sequenceDiagram
Activity1->>Instrumentation: startActivityForResult
alt Target <= API28
    Instrumentation->>ActivityManagerService: startActivity
else Target > API28
    Instrumentation->>ActivityTaskManager: startActivity
end
ActivityManagerService->>ActivityThread: scheduleTransaction
ActivityTaskManager->>ActivityThread: scheduleTransaction
ActivityThread->>ActivityThread#H: sendMessage
ActivityThread#H->>ActivityThread#H: handleMessage
ActivityThread#H->>ActivityThread: performLaunchActivity
ActivityThread->>Instrumentation: newActivity
Instrumentation->>Instrumentation: callActivityOnCreate
Instrumentation->>Activity2: performCreate
Loading