У меня проблема с навигацией по Activity и задним стеком, и я надеялся, что вы сможете прояснить это для меня.
Проблема
Корневая активность >>> SecondActivity >> HomeButton
Затем я попадаю на домашнюю страницу, и оттуда я выбираю ...
Gmail >> Сообщение >> Открыть вложение в моем приложении >> ImportActivity >> RootActivity
В результате запускается новая задача и используется другой экземпляр моего приложения. Это неприемлемо, поскольку я не хочу, чтобы выполнялись две отдельные задачи, мне нужна только одна.
Желаемый результат
Я хочу, чтобы произошло то, что пользователь открывает вложение, а ImportActivity завершает свои действия (для него android:noHistory
установлено значение true) и вызывает startActivity(intent)
, RootActivity
запускается, но сохраняет только один экземпляр, а остальные действия, расположенные поверх него в исходной задаче (в данном случае SecondActivity
), удаляются.
Причина, по которой я хочу это, заключается в том, что пользователь выходит из моего приложения после импорта файла, а затем касается значка приложения, он загружает первую задачу со своим задним стеком, и у меня выполняются две задачи, в которых пользователь может находиться в двух разных частях мое приложение сразу.
Что я пробовал
Я поигрался с режимом запуска, но ни один из них не дает мне той функциональности, которая мне нужна.
Режимы запуска, которые я пробовал ..
android: launchMode = "singleTask" - это просто запускало корневую активность каждый раз при ее запуске. Даже если пользователь нажал кнопку «Домой» внутри моего приложения и коснулся значка приложения, задний стек был уничтожен.
android: launchMode = "singleInstance = не разрешает выполнение каких-либо других действий в задаче.
Также при вызове намерения запустить RootActivity
я безрезультатно использовал следующее.
Intent i = new Intent(ImportActivity.this,TrackingActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
Можно ли делать то, что я хочу?
Заранее благодарим
Intent.FLAG_ACTIVITY_CLEAR_TASK
при запуске TrackingActivity - person Sherif elKhatib   schedule 17.12.2012taskAffinity
? - person David Wasser   schedule 19.12.2012