我有一个本地化的字符串资源A.我注意到在清除应用程序数据/缓存(在设置下)并打开我的活动(属于该应用程序)之后,我总是在en locale中看到资源A而不管当前设备语言。如果我再次进行设置,请手动将设备语言更改为任何内容,然后返回到我的活动,然后资源A再次正确本地化。
我想知道为什么在清除应用程序数据/缓存后将语言环境设置为默认值并且有办法解决此问题吗?感谢。
答案 0 :(得分:0)
这是一个hacky解决方案,但您可以在启动器活动中设置区域设置,如下所示:
Configuration config = res.getConfiguration();
Configuration configuration = new Configuration();
config.locale = config.locale;
getBaseContext().getResources().updateConfiguration(configuration,
getBaseContext().getResources().getDisplayMetrics());
您还可以检查设备区域设置,以确保设备区域设置已更改。