Activity 各种情况下的生命周期总结
Situation1:
正常启动: onCreate() → onStart() → onResume();
返回健退出: onPause() → onStop() → onDestory();
Situation2:
正常启动 : onCreate() → onStart → () onResume();
按home健: onPause() → onStop();
正常启动:onRestart() → onStart() → onResume();
Situation3:
正常启动:onCreate() → onStart() → onResume();
横竖屏切换: onPause() → onStop() → onDestory() → onCreate() → onStart() → onResume();
Situation4:
前提条件:Activity的AndroidManifest.xml中设置android:configChanges="orientation|keyboardHidden|screenSize”
正常启动:onCreate() → onStart() → onResume();
横竖屏切换: onConfigurationChanged();
结论:
设置Activity的android:configChanges="orientation |keyboardHidden|screenSize"时,切 屏不会重新调用各个生命周期,只会执 行onConfigurationChanged方法;
自从Android3.2(API13), 在设置Activity的 android:configChanges="orientation |keyboardHidden"后,还是一样会重新 调用各个生命周期的。因为screensize 也开始跟着设备的横竖切换而改变。所以,在AndroidManifest.xml里设置的 MiniSdkVersion和TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了 设置"orientation",你还必须设 置"ScreenSize"。
转自:http://www.eoeandroid.com/thread-542748-1-1.html