Запуск другой задачи с Android - PullRequest
1 голос
/ 17 марта 2011

Мое приложение можно открыть в двух разных контекстах:

(1) с главного экрана (2) Из уведомления в строке заголовка.

Если приложение открывается из уведомления, оно запускает действие B, и когда пользователь завершает выполнение этого действия, Я хочу закрыть приложение. Я не хочу, чтобы оно выполнялось Вернитесь к другому действию в стеке действий, если приложение было открыто ранее из контекста (1) выше.

Например, если я открою приложение на главном экране, затем нажмите дом, а затем открою приложение из уведомления в строке заголовка, когда я закончу с Упражнением B, оно вернет меня к основному занятию для моего приложение. Я не хочу этого делать.

Мне бы очень хотелось иметь возможность заново запускать стек операций при открытии активности из уведомления.

Я попытался добавить флаги

FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP

Но это, похоже, не помогает. В качестве альтернативы я также попытался установить noHistory = "true" внутри действий в моем приложении, но этот действительно не работает, если пользователь открывает приложение из контекста (1).

Есть идеи? Можно ли как-нибудь запустить стек операций при открытии приложения из другого контекста?

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

В AndroidManifest вы должны добавить android:clearTaskOnLaunch="true" для действия B. Это означает, что оно будет запускать новое задание для действия B при каждом запуске.

0 голосов
/ 17 марта 2011

Вы можете вызвать finish() из метода onStop() ActivityA таким образом, когда пользователь находится внутри этого действия и нажимает кнопку возврата, действие будет завершено и его больше не будет в стеке.Затем, когда они откроют ActivityB из панели уведомлений и покончат с этим, они будут перенаправлены обратно на домашний экран (или в другое действие, если они были внутри чего-то, когда открывали вас из панели уведомлений).

...