Android 程序运行时,一些设备的配置可能会改变。改变时当前程序的Activity会重新启动:在销毁前会先调用onSaveInstanceState()方法去保存应用中数据,再调用onDestory()方法。紧接着调用onCreate()、onStart()、onResume()等方法启动一个新的Activity。然而AndroidManifest.xml中配置android:configChanges属性可以解决设备某些配置改变时不重启Activity,而是设置多个属性时,用"|”隔开。
属性值有:
“mcc” :国际移动用户识别码所属国家代号改变了----- sim被侦测到了,去更新mcc,mcc是移动用户所属国家代号
“mnc”: 国际移动用户识别码的移动网号码改变了------ sim被侦测到了,去更新mnc,MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网
“locale”: 地址改变了-----用户选择了一个新的语言会显示出来
“touchscreen”: 触摸屏是改变了------通常是不会发生的
“keyboard” :键盘发生了改变----例如用户用了外部的键盘
“keyboardHidden”: 键盘的可用性发生了改变
“navigation”: 导航发生了变化-----通常也不会发生
“screenLayout”: 屏幕的显示发生了变化------不同的显示被激活
“fontScale”: 字体比例发生了变化----选择了不同的全局字体
“uiMode”: 用户的模式发生了变化
“orientation”: 屏幕方向改变了
“screenSize”: 屏幕大小改变了
“smallestScreenSize”: 屏幕的物理大小改变了,如:连接到一个外部的屏幕上