Android: управление отображением активности при нажатии на уведомление - PullRequest
0 голосов
/ 10 сентября 2011

В приложении для Android у меня есть два вида деятельности; давайте назовем их A и B. A - это основное действие, и оно содержит кнопку, которая вызывает startActivity () для отображения B. Вкратце:

A -> B

А имеет нить, которая тикает каждую минуту. На этой галочке в строке состояния обновляется уведомление

Это то, что я после:

1) Когда пользователь нажимает на уведомление, когда ни A, ни B не видны, отображается A 2) Когда пользователь нажимает на уведомление, когда A виден, ничего не должно происходить 3) Когда пользователь щелкает уведомление, когда отображается B, ничего не должно происходить (или, если проще, вывести B, чтобы показать A)

1) и 2) легко выполнить. 3) запустит новую версию A и добавит ее в очередь:

A -> B -> A, это не то, что я хотел. Пользователь должен нажать три раза назад, чтобы перейти на домашний экран

Есть ли способ убедиться, что при щелчке на уведомлении будет отображен только стек A -> B или A?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2011

Установить FLAG_ACTIVITY_CLEAR_TOP флаг в методе startActivity(). После этого, если вы хотите восстановить действие A, установите флаг FLAG_ACTIVITY_SINGLE_TOP. Или, если вы хотите повторно использовать действие A, установите флаг FLAG_ACTIVITY_SINGLE_TOP.

0 голосов
/ 10 сентября 2011

Вы должны установить флаг действия A на singleTask и поймать новое startActivity() намерение на onNewIntent(Intent i) действия A (которое вы должны переопределить). Надеюсь, это поможет!

...