android:configChanges="locale"

android:configChanges="locale"

之后在不退出应用的情况下切换到Settings里切换语言,发现该Activity还是重启了。

4.2中,app配置了configChanges locale属性后,当app处于后台,并没有finish时,如果改变语言,并不会在resume时调用Activity重写的onConfigurationChanged函数。

原因是,4.2增加了一个layoutDirection属性,当改变语言设置后,该属性也会成newConfig中的一个mask位。所以ActivityManagerService(实际在ActivityStack)在决定是否重启Activity的时候总是判断为重启。

当在android:configChanges 中同时添加locale和layoutDirection时,才会发生app期望的事情。

SDK文档中有:

"orientation" The screen orientation has changed — the user has rotated the device.

Note: If your application targets API level 13 or higher (as declared by the minSdkVersion and targetSdkVersion attributes), then you should also declare the "screenSize" configuration, because it also changes when a device switches between portrait and landscape orientations.

但是在locale中却没有说明。locale中应该也有和这个类似的说明。

android:configChanges="locale"

时间: 2024-10-29 07:22:08

android:configChanges="locale"的相关文章

<Android>从窗体泄漏谈android:configChanges属性

今天有幸去哥们的大公司做了半天的临时工,一个偶现的Bug折腾了他好久,好不容易今天抓到了异常Log日志,大致的意思就是android.view.windowleaked--窗体泄漏.我在网上查了资料: Android的每一个Activity都有个WindowManager窗体管理器,构建在某个Activity之上的对话框.PopupWindow也有相应的WindowManager窗体管理器.因为Dialog.PopupWindown不能脱离Activity而单独存在着,所以当承载某个Dialog

android:configChanges属性总结

原文地址:http://blog.csdn.net/zhaokaiqiang1992/article/details/19921703 android中的组件Activity在manifest.xml文件中可以指定参数android:ConfigChanges,用于捕获手机状态的改变. 在Activity中添加了android:configChanges属性,在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数.

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

<activity android:name="xxxActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:launchMode="singleTask" ---launchMode为singleTask的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时

Android android:configChanges的简介

AndroidManifest.xml 文件中 ,在声明Activity时 ,会有这样一个属性设置 即 android:configChanges ,现在就来简单介绍下吧: 程序在运行时,一些设备的配置可能会改变,如:横竖屏的切换.键盘的可用性等,这样的事情一发生,Activity会重新启动,其中的过程是:在销毁之前 会先 called  onSaveInstanceState()去保存你应用中的一些数据,然后called onDestroy(),最后才去called onCreate()或on

android:configChanges属性

对android:configChanges属性,一般认为有以下几点: 1.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次 2.设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横.竖屏时只会执行一次 3.设置Activity的android:configChanges="orientation|keyboa

android:configChanges 属性注意事项

转屏时,配置了android:configChanges="keyboardHidden|orientation" 还是会调用oncreate ,原来是因为没有配置screensize属性导致. 参考:http://blog.csdn.net/huiguixian/article/details/8071821 在以前的版本中只要在AndroidManifest.xml文件中对activity指定android:configChanges="keyboardHidden|or

Android configChanges使用方法

1.    在manifest文件里使用activity的默认属性.横屏竖屏时,惠重复调用onDestory和onCreate  造成不必要的开销.Android默认如此应该是为了适配不同的xml布局文件.又一次初始化资源,显示效果会好一些. 2. manifest文件里配置activity的属性: android:configChanges="orientation|screenSize" 在activity中将会回调函数: public void onConfigurationCh

android手机横屏和竖屏与android:configChanges

原文地址:http://woshixy.blog.51cto.com/5637578/1081913 目前大多数手机都支持重力感应随之而来的就是屏幕方向改变的问题.对应普通开发者来说屏幕的随意改变也会带来困扰.在Google自带的doc里可以看到,如果设备的配置(Resources.Configuration中进行了定义)发生改变,那么所有用户界面上的东西都需要进行更新以适应新的配置.因为Activity是与用户交互的最主要的机制,它包含了处理配置改变的专门支持.除非你特殊指定,否则当配置发生改

横竖屏切换时,禁止activity重新创建,android:configChanges=&quot;keyboardHidden|orientation&quot; 不起作用

这个网上搜索,很多结果都是: AndroidManifest.xml android:configChanges="keyboardHidden|orientation" 但是,实际上很多手机上,这个根本不起作用.这是为什么呢? 因为,但多数人陈陈相因,文章直接转,都没有结果自己实践. 在低版本上,这个是可以起作用.在android 4.0 以上实际上这个是不起作用的. 必须要加上screenSize. android:configChanges="keyboardHidde