在 AndroidManifest.xml文件中 activity的 configChanges属性影响 activity的生命周期变化
一、不设置configChanages
无论是竖屏切换成横屏还是横屏切换成竖屏,activity的生命周期执行过程都是一样,如下:
onPause()
onSaveInstanceState()
onStop()
onDestroy()
onCreate()
onStart()
onRestoreInstanceState()
onResume()
二、设置configChanages
1.设置 android:configChanges="orientation" 和不设置这个属性一样,activity都是重新创建
2.设置 android:configChanges="orientation|keyboardHidden",当targetSdkVersion等于或小于12时,
actvity不会重新创建,会执行 activity的onConfigurationChanged()方法,反之则和不设置这个属性一样,
activity重新创建
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
3.设置 android:configChanges="orientation|keyboardHidden|screenSize",activity不会重新创建,只会执
行activity的onConfigurationChanged()方法
三、总结
1.我是在android 4.4模拟器上测试的,通过改android targetSdkVersion的值
2.设置 android:configChanges="orientation" 和不设置这个属性,activity会重新创建
3.设置 android:configChanges="orientation|keyboardHidden"
a)android:targetSdkVersion<="12",activity不会重建,会执行onConfigurationChanged()方法
b)android:targetSdkVersion>"12",activity会重新创建
4.设置 android:configChanges="orientation|keyboardHidden|screenSize",activity不会重建,执行
onConfigurationChanged()方法