irpas技术客

android:configChanges属性解析_互联网小熊猫_android:configchanges

网络 4752

一、configChanges作用

Android程序在运行时,一些设备的配置可能会改变,如:横竖屏的切换、键盘的可用性等。这些事件一旦发生,当前活动的Activity会重新启动,其中的过程是:在销毁之前会先调用onSaveInstanceState()方法去保存你应用中的一些数据,然后调用onDestroy()方法,最后调用onCreate()、onStart()、onResume()等方法启动一个新的Activity。

如果想让某些配置在发生改变的时候不重启Activity,需要为Activity添加android:configChanges属性,该属性可以设置多个值,用"|"隔开,例如:“locale|navigation|orientation。设置了android:configChanges属性后,当指定的属性发生变化时,不会去重新启动Activity,而是通知程序去调用Activity的onConfigurationChanged()方法。例如:在进行横竖屏的切换时,会重新启动Activity,而定义了android:configChanges=“orientation|keyboardHidden”,就不会重新启动Activity了,而是去调用 onConfigurationChanged()方法。

简言之,在Activity中添加了android:configChanges属性,目的是当android:configChanges所设置的属性值对应的配置属性发生改变时,通知程序调用 onConfigurationChanged()函数,而不会重启Activity。

二、android:configChanges属性可以指定的值

“mcc” :国际移动用户识别码所属国家代号改变了----- sim被侦测到了,去更新mcc,mcc是移动用户所属国家代号 “mnc”: 国际移动用户识别码的移动网号码改变了------ sim被侦测到了,去更新mnc,MNC是移动网号码,最多由两位数字组成,用于识别移动用户所归属的移动通信网 “locale”: 地址改变了-----用户选择了一个新的语言会显示出来 “touchscreen”: 触摸屏是改变了------通常是不会发生的 “keyboard” :键盘发生了改变----例如用户用了外部的键盘 “keyboardHidden”: 键盘的可用性发生了改变 “navigation”: 导航发生了变化-----通常也不会发生 “screenLayout”: 屏幕的显示发生了变化------不同的显示被激活 “fontScale”: 字体比例发生了变化----选择了不同的全局字体 “uiMode”: 用户的模式发生了变化 “orientation”: 屏幕方向改变了 “screenSize”: 屏幕大小改变了 “smallestScreenSize”: 屏幕的物理大小改变了,如:连接到一个外部的屏幕上


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。