Я столкнулся с неприятной проблемой, я не знаю, как правильно ее решить.Android предотвращает восстановление намерений после уничтожения на задней кнопке
Сценарий:
MainActivity имеет метод handleIncomingIntent()
Этот метод анализирует статисты, поступающий в поступающем намерении (для обслуживания, или широковещательного приемника) и открывает по уходу за детьми Мероприятия, основанный на намерению данных. Итак, когда входящий Intent имеет данные типа A, он запуститActivity (ActivityA.class), если из типа B тогда startActivity (ActivityB.class), если нет данных, он останется в MainActivity
Проблема в том, что устройство низкое в памяти, MainActivity будет уничтожен, а в ActivityA или ActivityB.
Поэтому, когда используется BackButton - MainActivity восстанавливается, и его входящий Intent восстанавливается в том же состоянии, что и перед его обработкой, несмотря на то, что я делаю inIntent.removeExtras (KEY) в конце моего метода handleIncomingIntent() , Таким образом, результат - это запуск Child Activity еще раз, и это цикл!
Я понимаю, что я могу хранить некоторый флаг isIntentConsumed в памяти внутри onDestroy(), а затем читать его restoreSavedState() и использовать его, чтобы отклонить намерение, поскольку оно уже потреблено.
Я просто чувствую, что должен быть лучший способ, чем «бандад», который я только что описал.
С наилучшими пожеланиями, Павел
Спасибо Терри, я собираюсь попробовать его сегодня вечером и будет голосовать, если это работает. –
Ничего себе, это было так просто. Я об этом не думал. Спасибо, Терри. Это правильный ответ –
@PavelKirillov :) cheer, получайте удовольствие! –