简体   繁体   中英

device locale is set to en_us after clearing app data

I have a localized string resource A. I noticed that after I clear app data/cache (under setting), and open my activity (which belongs to that app), I always see resource A in en locale regardless of the current device language. If I go to setting again, change device language manually to whatever, and go back to my activity, then resource A is localized properly again.

I wondering why locale is set to default after app data/cache is cleared and is there a way to fix this? Thanks.

This is a hacky solution but you could set the locale in the launcher activity like this:

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

You can also check the device locale to be absolutely sure that the device locale has changed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM