У нас появилось странное поведение с Android N 7.1 (API-25). После запуска WebView система принудительно перезапускает локаль в локали устройства. Это переопределяет используемый язык (для локализации) в приложении. Легкий способ воспроизведения, чтобы получить локализацию в приложении. и запустить WebView. Затем вы больше не увидите локализованный контент, пока не снова перезапустите приложение. Это происходит только на Android-7.1 (API-25)
Вот как я переключаю Locale, который работает во всех API:
public void switchToCzLocale() {
Locale mLocale = new Locale("cs","CZ");// it can be any other Locale
Configuration config = getBaseContext().getResources()
.getConfiguration();
Locale.setDefault(mLocale);
config.setLocale(mLocale);
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
Я загрузил образец, чтобы воспроизвести эту проблему с более подробной информацией о:
https://github.com/mabuthraa/WebView-android7-issue
Прошу прокомментировать, если это поведение является ошибкой или, возможно, плохой имплантацией меняющегося языка.
Вот ссылка на выпуск билета в группе Android: Проблема 218310: [предварительный просмотр разработчика] Создание WebView сбрасывает настройки пользователя по умолчанию для пользователя