Я внедрил пользовательский выбор локали около года назад, но после выхода версии 4.1 пользователи начинают жаловаться на постоянную мигание активности. Вот код, я использую (составитель из различных SO ответов):Активность мигает после изменения локали в Android 4.1+
public final class TestApplication extends Application
{
private Locale desiredLocale = new Locale("ru-RU");
@Override
public void onCreate() {
super.onCreate();
updateLocale(new Configuration());
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
updateLocale(newConfig);
}
private void updateLocale(Configuration newConfig) {
newConfig.locale = desiredLocale;
Locale.setDefault(desiredLocale);
getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());
}
}
Приложение содержит только один пустой деятельности, которая воссоздается на Android каждый второй после того как я изменить ориентацию устройства. Here является источником выборки.
Похоже, что все приложения, использующие эту технику, стали недействительными. Каков правильный подход?