Android, изменение языка приложения, не работает должным образом на oneplus и huawei

#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 для этого языка