基于Android8.0,本文仅记录不同生命周期中调用finish,Activity的生命周期执行顺序。
Demo应用包含两个Activity:ActivityA和ActivityB,如下流程是在ActivityB的不同生命周期中调用finish函数。
目录
8.onSaveInstanceState中调用finish
1.onCreate中调用finish
- 启动ActivityA:
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- ActivityA中启动ActivityB:
- ActivityA.onPause
- ActivityB.onCreate
- ActivityA.onResume
- ActivityB.onDestroy
2.onStart中调用finish
- 启动ActivityA:
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- ActivityA中启动ActivityB:
- ActivityA.onPause
- ActivityB.onCreate
- ActivityB.onStart
- ActivityA.onResume
- ActivityB.onStop
- ActivityB.onDestroy
3.onResume中调用finish
- 启动ActivityA
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- ActivityA中启动ActivityB
- ActivityA.onPause
- ActivityB.onCreate
- ActivityB.onStart
- ActivityB.onResume
- ActivityB.onPause
- ActivityA.onResume
- ActivityB.onStop
- ActivityB.onDestroy
4. onPause中调用finish
- 启动Activity
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- ActivityA中启动ActivityB
- ActivityA.onPause
- ActivityB.onCreate
- ActivityB.onStart
- ActivityB.onResume
- ActivityA.onSaveInstanceState
- ActivityA.onStop
- 点击Home键
- ActivityB.onPause
- ActivityB.onStop
- ActivityB.onDestroy
5. onStop中调用finish
- 启动Activity
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- ActivityA中启动ActivityB
- ActivityA.onPause
- ActivityB.onCreate
- ActivityB.onStart
- ActivityB.onResume
- ActivityA.onSaveInstanceState
- ActivityA.onStop
- 点击Home键
- ActivityB.onPause
- ActivityB.onSaveInstanceState
- ActivityB.onStop
- ActivityB.onDestroy
6. onDestroy中调用finish
- 启动ActivityA
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- ActivityA中启动ActivityB
- ActivityA.onPause
- ActivityB.onCreate
- ActivityB.onStart
- ActivityB.onResume
- ActivityA.onSaveInstanceState
- ActivityA.onStop
- 点击Home键
- ActivityB.onPause
- ActivityB.onSaveInstanceState
- ActivityB.onStop
- 重新进入ActivityB
- ActivityB.onRestart
- ActivityB.onStart
- ActivityB.onResume
- 点击Back键
- ActivityB.onPause
- ActivityA.onRestart
- ActivityA.onStart
- ActivityA.onResume
- ActivityB.onStop
- ActivityB.onDestroy
7.onRestart中调用finish
- 启动ActivityA
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- A中启动ActivityB
- ActivityA.onPause
- ActivityB.onCreate
- ActivityB.onStart
- ActivityB.onResume
- ActivityA.onSaveInstanceState
- ActivityA.onStop
- 点击home键
- ActivityB.onPause
- ActivityB.onSaveInstanceState
- ActivityB.onStop
- 重新进入B
- ActivityB.onRestart
- ActivityB.onStart
- ActivityB.onResume
- ActivityB.onPause
- ActivityA.onRestart
- ActivityA.onStart
- ActivityA.onResume
- ActivityB.onStop
- ActivityB.onDestroy
8.onSaveInstanceState中调用finish
- 启动ActivityA
- ActivityA.onCreate
- ActivityA.onStart
- ActivityA.onResume
- A中启动ActivityB
- ActivityA.onPause
- ActivityB.onCreate
- ActivityB.onStart
- ActivityB.onResume
- ActivityA.onSaveInstanceState
- ActivityA.onStop
- 点击home键
- ActivityB.onPause
- ActivityB.onSaveInstanceState
- ActivityB.onStop
- ActivityB.onDestroy
- 重新进入应用
- ActivityA.onRestart
- ActivityA.onStart
- ActivityA.onResume