Моя история приложений в норме; Я не использую никаких причудливых флагов или чего-то еще, когда запускаю намерения. Только последовательные однозадачные запущенные действия. Если я иду домой, а затем использую убийцу задач, чтобы убить свое приложение, в следующий раз, когда я открою приложение, оно запустится в последнем действии, которое я выполнял перед убийством, а не в объявленном основном действии. Кроме того, если я затем нажму «Назад», чтобы выйти из приложения и снова открыть его, я получу любую активность, которая была открыта до той, которую я ранее открывал до убийства.
Что-то вроде этого:
A = основная деятельность; B = Другая деятельность; C = Другая деятельность
- Открыть приложение – A
- Открыть B - B
- Открыть C - C
- Убить приложение с помощью тасккиллера
- Открыть приложение — C
- Кнопка «Назад» – главная страница устройства
- Открыть приложение – B
- Кнопка «Назад» – главная страница устройства
- Открыть приложение – A
Я ожидаю, что backstack не запомнится после завершения задачи. Я ожидаю, что приложение всегда будет запускаться с объявленной основной активности, если только оно еще не запущено в фоновом режиме. (что здесь не так, поскольку используется убийство). Обе эти вещи, похоже, не происходят, однако, и я не знаю, почему.
Я попытался добавить некоторый код, чтобы установить «инициализированное» логическое значение в моем классе Application для onCreate A, а затем проверить его в B и C< /strong> onCreate. Идея состояла в том, чтобы запустить намерение A с флагами NEW_TASK и CLEAR_TOP, чтобы попытаться обнаружить и исправить сценарий, но он по-прежнему демонстрировал точно такое же поведение, за исключением того, что он также помещал A поверх того, что осталось. Таким образом, вместо того, чтобы запускать приложение в B, оно будет запускать приложение в BA.
Основываясь на всем, что я читал о жизненном цикле активности и уничтожении приложений операционной системой, это невозможно, но это определенно происходит на всех моих тестовых устройствах. У кого-нибудь есть идеи относительно того, что может быть причиной этого странного поведения?