Activity生命周期

2021/04/22 note 共 1220 字,约 4 分钟

对Android中Activity的生命周期做个记录。
先看Activity的生命周期流程图:

activity_lifecycle

1、A启动B,再点返回键返回A,生命周期回调

A启动B:
(A)onPause → (B)onCreate → (B)onStart → (B)onResume → (A)onStop
在B点击返回键返回到A:
(B)onPause → (A)onRestart → (A)onStart → (A)onResume → (B)onStop → (B)onDestroy

2、A启动透明Activity C,再点返回键返回A,生命周期回调

A启动透明C:
(A)onPause → (C)onCreate → (C)onStart → (C)onResume
在C点击返回键返回到A:
(C)onPause → (A)onResume → (C)onStop → (C)onDestroy

3、当横竖屏切换时的生命周期

当切换到横屏时,A+表示新的activity实例:
(A)onPause → (A)onStop → (A)onDestory → (A+)onCreate → (A+)onStart → (A+)onResume
当切换回竖屏时:
(A)onPause → (A)onStop → (A)onDestory → (A+)onCreate → (A+)onStart → (A+)onResume

疑问:网上有blog写切回竖屏时会执行两遍生命周期方法,是由于Android版本不同?待确认

4、 点击home/点击最近任务的生命周期

点击home/最近任务:
(A)onPause → (A)onStop
返回到A界面:
(A)onRestart → (A)onStart → (A)onResume

5、各个生命周期的理解

onCreate:这是Activity生命周期的第一个方法,此时Activity在后台,还不可见
onStart:此时Activity已经可见,但是还没有到前台,不能进行交互操作
onResume: 此时Activity出现在前台并可见,此时可以进行独占的操作(比如打开相机)
onPause:此时Activity仍然在前台并可见,可以进行一些轻量级的释放操作,android中指定如果onPause在500ms即0.5秒内没有执行完毕的话就会强制关闭Activity
onStop:此时Activity已经不可见,但是Activity对象还在内存中,没有被销毁
onDestory:此阶段Activity对象即将销毁,不可见,可以进行一些资源释放操作
onRestart:当Activity重新恢复可见时的回调,比如从其他Activity返回或者按Home键后回到应用,一般用不到这个回调

综上,onCreate、onDestory表示Activity的创建和销毁,onStart、onStop表示Activity的可见和不可见,onResume、onPause表示Activity是否可进行交互和编辑

参考资料:

文档信息

Search

    Table of Contents