Android笔记(十三):总结Activity更多生命周期方法回调顺序
七大生命周期方法:
onCreate、onStart、onResume、onRestart、onPause、onStop、onDestroy
对应官网图:
在此基础上补充:
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版本)