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

 

原文地址:https://www.cnblogs.com/ywtk/p/3950957.html