Я столкнулся именно с проблемой, упомянутой в этих ссылках:
http://code.google.com/p/android/issues/detail?id=2373
http://groups.google.com/group/android-developers/browse_thread/thread/77aedf6c7daea2ae/da073056831fd8f3?#da073056831fd8f3
http://groups.google.com/group/android-developers/browse_thread/thread/2d88391190be3303?tvc=2
У меня есть простое действие root с намерениями LAUNCHER и MAIN и ничего больше . Я начинаю другое действие с без флагов или чем-то еще в манифесте.
Я запускаю приложение (корневое действие) и оттуда запускаю второе действие. При нажатии кнопки «Домой» задача уходит в фоновый режим. При повторном запуске приложения (из Launcher или из-за удерживания кнопки Home для последних приложений) оно запускает новый экземпляр корневого действия поверх существующего стека.
Если я нажму кнопку «Назад», новое «корневое» действие закроется, и будет видно старое второе действие, что означает запуск корневого действия в той же задаче вместо вывода задачи на передний план.
Чтобы противостоять этому, я установил режим запуска корневого действия singleTask . Теперь, когда я нажимаю home и снова запускаю приложение, оно очищает действия над старой корневой задачей и выводит старую корневую задачу на передний план вместо того, чтобы просто перенести всю старую задачу со вторым действием сверху вперед. Обратите внимание, что старая корневая задача все еще сохраняет свое состояние приложения, что означает, что она не была новым экземпляром, но более высокие действия были уничтожены.
Это происходит даже в других приложениях, загруженных с маркета. Метод ручной установки для меня не действует, он все равно запускается так же.