当设置configChanges属性的时候,会让Activity在什么时候不进行重新创建;
例如:
当不想让Activity在屏幕旋转的时候重新创建,就可以给configChanges属性添加orientation这个值,代码如下:
android:configChanges = "orientation";
configChanges 的项目和含义
- mcc SIM卡唯一标识IMSI中的国家代码
- mnc SIM卡唯一标识IMSI中的运营商代码
- locale 设备的本地位置发生了变更,一般指切换了系统的语言
- touchscreen 触摸屏发生了改变,但是一般无法发生,可以忽略
- keyboard 键盘类型发生了改变,如用户使用了外接键盘
- keyboardHidden 键盘的可访问性发生改变,一般指用户调用了键盘
- navigation 系统导航发生了改变,这个一般可以忽略
- screenLayout 屏幕布局发生改变,比如用户激活了另一个显示设备
- fontScale 系统字体缩放比例发生了改变,比如用户选择了一个新的字号
- screenSize 当屏幕的磁村信息发生了改变,当旋转设备屏幕的时候,屏幕尺寸发生了改变,这个选项比较特殊,它和编译选项有关,当编译选项中的minSdkVersion和targetSdkVersion均低于13时,此选项不会导致activity重启,否则会导致Activity重启
- layoutDirection 当布局方向发生变化,这个属性用的比较少,正常情况下无需修改布局的layoutDirection
- smallestScreenSize 设备物理屏幕尺寸发生改变,如:用户切换到外部设备,和screenSize类似
如果我们没有在Activity的configChanges属性中指定该选项的话,当配置发生改变后就会导致Activity重新创建,常用的只有locale,orientation和keyboardHidden这三项,
虽然不会重新创建Activity了,但是会回调onConfigurationChanged方法,这个时候我们就可以做一些相应的操作了