android: `refreshate ()` не только это, но и последнее действие - PullRequest
0 голосов
/ 08 июля 2019

Я использую этот код для программного изменения языка моего приложения:

Locale.setDefault(locale);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
       getBaseContext().getResources().getDisplayMetrics());
recreate();

Работает как заклинание для этого и всех последующих действий, но если я использую функцию возврата моего мобильного телефона, последнее действие повторно используется со старым языком.

Есть ли способ аннулировать последнее действие или принудительно воссоздать его?

1 Ответ

0 голосов
/ 08 июля 2019

Этот пост решил проблему: Как восстановить предыдущее действие?

Мое окончательное решение:

@Override
public void onResume() {
    super.onResume();
    if(!currentLanguage.equals(getResources().getConfiguration().locale.getLanguage())) {
        recreate();
    }
}

и onCreate():

currentLanguage = getResources().getConfiguration().locale.getLanguage();

(следовало искать больше).

...