清除应用数据后,设备区域设置将设置为en_us

时间:2016-03-09 09:09:50

标签: android android-resources

我有一个本地化的字符串资源A.我注意到在清除应用程序数据/缓存(在设置下)并打开我的活动(属于该应用程序)之后,我总是在en locale中看到资源A而不管当前设备语言。如果我再次进行设置,请手动将设备语言更改为任何内容,然后返回到我的活动,然后资源A再次正确本地化。

我想知道为什么在清除应用程序数据/缓存后将语言环境设置为默认值并且有办法解决此问题吗?感谢。

1 个答案:

答案 0 :(得分:0)

这是一个hacky解决方案,但您可以在启动器活动中设置区域设置,如下所示:

Configuration config = res.getConfiguration();
Configuration configuration = new Configuration();
config.locale = config.locale;
getBaseContext().getResources().updateConfiguration(configuration,
      getBaseContext().getResources().getDisplayMetrics());

您还可以检查设备区域设置,以确保设备区域设置已更改。