#android #locale #android-configchanges
#Android #локализация #android-изменения конфигурации
Вопрос:
Я меняю местоположение приложения следующим образом,
Language language = getPreferenceAppLanguage();
if (language == null) {
return;
}
Locale locale = createLocale(language);
Locale.setDefault(locale);
Resources res = mContext.getResources();
Configuration config = new Configuration(res.getConfiguration());
if (Build.VERSION.SDK_INT >= 17) {
config.setLocale(locale);
mContext.createConfigurationContext(config);
} else {
config.locale = locale;
res.updateConfiguration(config, res.getDisplayMetrics());
}
res.updateConfiguration(config, res.getDisplayMetrics());
На всех других устройствах это работает нормально, но в oneplus и huawei, когда я меняю язык и запускаю приложение снова, все ресурсы настроены только на английскую локаль. У кого-нибудь есть исправление для этого?
Этого не происходит при перезапуске действия, происходит только при закрытии приложения и запуске снова
Комментарии:
1. что такое
getPreferenceAppLanguage
2. он возвращает язык, который сохранен в общих настройках, createLocale (language) возвращает locale для этого языка