在AndroidManifest.xml文件中Activity标签下有android:configChanges这个属性,该属性会在横竖屏切换时用到,一般会有以下几种情况:
- 不设置Activity的android:configChanges属性,那么在切屏时会重新调用各个生命周期,在切横屏时执行一次,切竖屏时则执行两次
- 设置Activity的android:configChanges=”orientation”时,那么在切屏仍然会重新调用各个生命周期,但切横、竖屏时只会执行一次
- 设置Activity的android:configChanges=”orientation|keyboardHidden”时,则切屏不会重新调用各个生命周期,只会执行onConfigurationChanged(Configuration newConfig)方法
在Android 3.2(API 13)以上的版本,在设置Activity的android:configChanges=”orientation|keyboardHidden”后,没有任何效果,切屏时依然会重新调用各个生命周期的,因为screen size也开始跟着设备的横竖切换而改变。所以,在Android 3.2后的版本,如果要防止切屏时重新调用各个生命周期,则需要加上screenSize,
例如:android:configChanges=”orientation|keyboardHidden|screenSize”