Изменение настроек языка Сбрасывает приложение или создает другой экземпляр приложения - PullRequest
0 голосов
/ 20 сентября 2018

У меня проблемы с поддержкой нескольких языков.Мне нужна помощь с пониманием того, что происходит.Что я заметил, так это то, что всякий раз, когда я меняю язык, например, меняю язык с английского на французский и возвращаюсь обратно в свое приложение, приложение перезапускается.Это вызывает ряд проблем, конечно, потому что такое поведение не ожидается.В частности, возникают проблемы, когда фрагменты видны, потому что жизненный цикл фрагмента сбрасывается (снова вызывается onCreateView), но запросы не вызываются, поскольку они конкурируют с запросами на уровне активности за ним.

Я пытался предотвратить это, используя onConfigurationChanged, однако я не уверен, что добавить к нему, кроме супер.В другом посте было предложено обновить мои взгляды перед супер.Но, в конечном счете, я просто хочу, чтобы мое приложение не сбрасывало жизненный цикл при смене языка.

   @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

Я также добавил local в свой манифест под узлами Activity

android:configChanges="locale|orientation|screenSize"

Как правильноне вносить никаких изменений в приложение при смене языка.Ответы на этот вопрос были неясными.У кого-нибудь есть четкие инструкции, которые на самом деле работают?

1 Ответ

0 голосов
/ 20 сентября 2018

Смена языков - это действительно редкое событие.Даже большинство людей, говорящих на разных языках, никогда не делают этого, поскольку клавиатуры позволяют вам независимо менять языки ввода.Вам, вероятно, лучше просто жить с ним или правильно реализовать onSaveInstanceState / onRestoreInstanceState, чтобы правильно сохранить все ваше состояние.

...