Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化

发布时间:2023-01-19 10:25:32

http://www.cnblogs.com/foura/articles/2016762.html http://www.blogjava.net/lincode/archive/2011/09/16/358768.html 生命周期
Android 系统在Activity 生命周期中加入一些例子,我们可以在这些系统预留的例子中做一些事情。
例举了 7 个常用的例子:
protected void onCreate(Bundle savedInstanceState protected void onStart( protected void onResume( protected void onPause( protected void onStop( protected void onRestart( protected void onDestroy(
简要说明:
onCreate(Bundle savedInstanceState:创建activity时调用。设置在该方法中,还以Bundle中可以提出用于创建该 Activity 所需的信息。
onStart(activity变为在屏幕上对用户可见时,即获得焦点时,会调用。
onResume(activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)
onPause(activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的。 onStop(activity被停止并转为不可见阶段及后续的生命周期事件时,即失去焦点时调用。 onRestart(:重新启动activity时调用。该活动仍在栈中,而不是启动新的活动。 onDestroy(activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调 finish(方法 或者系统决定停止该活动以释放资源。

横竖屏切换

1 切换到横屏
onSaveInstanceState onPause onStop onDestroy onCreate onStart onRestoreInstanceState onResume
2 切换到竖屏,销毁了两次 onSaveInstanceState onPause onStop onDestroyonCreate onStart
onRestoreInstanceState onResume onSaveInstanceState onPause onStop onDestroy onCreate onStart onRestoreInstanceState onResume
3 修改AndroidManifest.xml把该Activity添加 android:configChanges="orientation"切横屏,只销毁一次。

onSaveInstanceState onPause onStop onDestroy onCreate onStart onRestoreInstanceState onResume
4 再切回竖屏,发现不会再打印相同信息,但多打印了一行onConfigChanged onSaveInstanceState onPause onStop onDestroy onCreate onStart onRestoreInstanceState onResume onConfigurationChanged
5 android:configChanges="orientation" android:configChanges="orientation|keyboardHidden",切横屏,就只打印onConfigChanged
onConfigurationChanged
6 切回竖屏

onConfigurationChanged onConfigurationChanged

Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化

相关推荐