如何在不重新启动应用的情况下刷新Android应用的区域设置更新的所有UI?

时间:2012-06-21 18:48:13

标签: android user-interface locale

我需要我的应用程序刷新所有UI以使用用户只需切换到的新语言环境而无需重新启动应用程序,有没有办法实现?

例如,当我测试我的应用程序时,我使用的是英语,现在我更改为使用法语,一些用户界面确实更新为用法语显示,而有些则保留为英语。有什么我可以失踪的吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果通过设备设置更改了区域设置,则活动的默认行为是系统自动重新创建/重新启动它们,使它们有机会使用正确的字符串资源(当然,如果是app has different string resouces for different locales)。

这称为Сonfiguration changes。其他类型的配置更改可能是设备轮换,字体大小更改等。但是程序员可以覆盖默认行为,即在AndroidManifest.xml中声明哪些令人困惑的更改可以绕过或覆盖Activity.onConfigurationChanged()

因此,请确保(1)您的应用程序区域设置支持的每个资​​源都有专用的字符串资源,并且(2)您不会阻止此类配置更改的配置更改行为的默认值。