У меня следующая последовательность действий:
SplashActivity -> MainActivity -> OrdersActivity -> OrderActivity
SplashActivity - это программа запуска. Он проверяет, имеет ли намерение дополнительный с именем «orderId». Если существует, он запускает OrderActivity с этим orderId и завершает сам. В противном случае он запускает MainActivity и завершает сам.
Когда с сервера приходит уведомление, он имеет дополнительный идентификатор. Поэтому при каждом нажатии уведомления запускается SplashActivity и запускается OrderActivity.
Моя проблема заключается в следующем: после открытия OrderActivity последовательно нажимаю кнопку возврата, пока не появится главный экран. Поток выглядит следующим образом:
OrderActivity -> OrdersActivity -> MainActivity -> Главный экран
Когда я нажимаю на свернутое приложение, я ожидаю, что меня перенаправят на MainActivity, однако я снова вижу OrderActivity. Это означает, что хотя я и завершаю SplashActivity программно при первом открытии, цель, исходящая от щелчка уведомления, остается неизменной, сохраняя orderId, пока я полностью не закрою приложение. Поэтому каждый раз, когда я выводю передний план приложения из свернутого списка приложений, SplashActivity получает это намерение вместе с orderId, полученным из уведомления.
Как я могу показать детали заказа (OrderActivity) только один раз, а затем перейти к MainActivity в следующих -софт-запусках из свернутого списка приложений?
ОБНОВЛЕНИЕ: getIntent().removeExtra("orderId")
прямо перед finish()
в SplashActivity не работает.