Намерение не обновлять свое значение, когда активность возобновлена ​​из остановленного состояния - PullRequest
0 голосов
/ 06 июля 2019

У меня есть 2 действия A и B. Моя деятельность A объявлена ​​singleInstance в файле манифеста.Я не хочу воссоздавать активность B каждый раз, когда она вызывается из A, потому что в ней есть некоторые данные, которые я не хочу перезагружать каждый раз.Итак, я запускаю действие B из A с intent.setFlags(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);.Я отправляю дополнительные данные String с намерением от A до B. В первый раз все работает нормально.Моя проблема во второй раз, когда я снова запускаю действие B с некоторыми новыми данными String (запуск B из некоторых других представлений назначения или кнопок в A), действие B не получает новые данные String с getIntent().getStringExtra("MY KEY").

.исследование, которое я обнаружил в этом случае, когда A запускает B во второй раз (когда B уже создан и остановлен в фоновом режиме), действие A не отправит новый объект Intent для запуска действия B снова.Os будет использовать операцию B из истории стека.

Поэтому я хочу знать, как я могу получить новый объект Intent в B (для получения новых данных String, соответствующих новому месту назначения запуска из A).

Я нашел 1 решение - новый объект Intent можно получить с помощью onNewIntent(Intent intent), например,

  protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    if (intent!=null){
        setIntent(intent);

    }
}

, но я не совсем понимаю метод onNewIntent(Intent intent).Поэтому я хочу знать, как мы можем использовать этот метод в этом случае или есть ли лучший способ сделать это.

...