方法介绍
-
方法:
public void onConfigurationChanged(Configuration newConfig)
-
场景:
- 当系统的 配置信息 发生改变时,系统会调用此方法。
- 前提是,在清单文件
AndroidManifest
中配置了configChanges
属性 对应的 设备配置,该方法才会被调用。 - 如果发生 设备配置信息改变 与
configChanges
属性设置 不一致,则Activity会被销毁并使用新的配置重建。 - 以上三句话举个列子,比如 现在横竖屏切换,
configChanges
属性 设置android:configChanges="keyboard"
,那Activity依然会销毁重建,因为它设置的属性 和 发生的设备信息 不一致,应当设置为android:configChanges="orientation|screenSize"
。 - 系统配置信息:类似 屏幕方向,更换系统字体,显示硬键盘...
案例解析一横竖屏切换
1.Activity清单文件中 没有设置 configChanges
属性。
结论:只要屏幕发生改变activity就销毁重建,不会走onConfigurationChanged 方法;
2.Activity清单文件中设置 android:configChanges="orientation|screenSize"
。
-
结论:activity不会被销毁重建,横竖屏切换只会走onConfigurationChanged方法
-
注意:
-
targetSdkVersion的值小于13时,只需要配置
orientation
即可; -
targetSdkVersion的值大于13时,必须要配置
orientation|screenSize
,否则只配置orientation,activity依然会销毁重建。
-