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