2016-03-09 2 views
0

У меня есть локализованный ресурс строки A. Я заметил, что после очистки данных/кэша приложений (при настройке) и открытия моей активности (которая принадлежит этому приложению), я всегда см. ресурс A в en locale, независимо от текущего языка устройства. Если я снова перейду к настройке, вручную измените язык устройства и вернитесь к моей активности, то ресурс A снова локализуется правильно.Установщик локали установлен на en_us после очистки данных приложения

Мне интересно, почему locale установлен на значение по умолчанию после удаления данных/кеша приложения и есть ли способ исправить это? Благодарю.

+0

Думаю, вам нужно настроить локаль в начале приложения. –

+0

Как я могу это сделать? Я думал, что локаль приложения всегда синхронизируется с языком, установленным в настройках устройства, но он не работает так? – hixhix

+0

Не могли бы вы рассказать мне, какие языки вы поддерживаете? –

ответ

0

Это Hacky решение, но вы можете установить локаль в пусковой деятельности, как это:

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

Вы также можете проверить локаль устройства, чтобы быть абсолютно уверенным в том, что локаль устройство изменилось.

Смежные вопросы