Android笔记(十三):总结Activity更多生命周期方法回调顺序

七大生命周期方法:

onCreate、onStart、onResume、onRestart、onPause、onStop、onDestroy

对应官网图:

lifr

在此基础上补充:

1.onWindowFocusChanged:当Window当前的活动获得或失去焦点时调用

2.onUserLeaveHint:当活动即将作为用户选择的结果进入后台时调用

3.onNewIntent:启动一个已存在的SingleTop或SingleTask模式的Activity时调用

4.onSaveInstanceState:如果Activity可能被系统杀死时调用

5.onRestoreInstanceState:Activity确实被系统杀死时调用

各种操作下回调方法的顺序:

1.App正常启动:

onCreate->onStart->onResume->onWindowFoucusChanged

2.启动后屏幕熄灭/Home返回App:

onPause->onSaveInstanceState->onStop->onWindowFocusChanged

3.屏幕重新亮起:

onRestart->onStart->onResume->onWindowFocusChanged

4.启动后按下Home键:

onUserLeaveHint->onPause->onWindowFocusChanged->onSaveInstanceState->onStop

5.App正常关闭:

onWindowFoucusChanged->onPause->onStop->onDestroy

6.ActivityA启动ActivityB(Standard模式):

ActivityA:onUserLeaveHint->ActivityA:onPause->ActivityA:onWindowFocusChanged->ActivityB:onCreate->ActivityB:onStart->ActivityB:onResume->ActivityB:onWindowFocusChanged->ActivityA:onSaveInstanceState->ActivityA:onStop

7.ActivityB回退ActivityA(startActivity启动):

ActivityB:onPause->ActivityA:onRestart->ActivityA:onStart->ActivityA:onResume->ActivityA:onWindowFocusChanged->ActivityB:onWindowFocusChanged->ActivityB:onStop->ActivityB:onDestroy

8.ActivityB回退ActivityA(startActivityForResult启动):

ActivityB:onPause->ActivityA:onActivityResult->ActivityA:onRestart->ActivityA:onStart->ActivityA:onResume->ActivityA:onWindowFocusChanged->ActivityB:onWindowFocusChanged->ActivityB:onStop->ActivityB:onDestroy

9.ActivityB启动ActivityB(SingleTask/SingleTop模式):

onPause->onNewIntent->onResume

10.旋转屏幕:

onPause->onSaveInstanceState->onStop->onDestroy->onCreate->onStart->onRestoreInstanceState->onResume->onWindowFocusChanged

11.<activity>配置android:configChanges="keyboardHidden|orientation|screenSize"后旋转屏幕:onConfigurationChanged (最好3个都配置,否则不能适配所有机型或sdk版本)


猜你喜欢

转载自blog.csdn.net/weixin_40855673/article/details/80628906