0

У меня возникли проблемы с потоком приложения, над которым я работаю. В основном у меня есть служба, которая всегда содержит уведомление, нажатие на уведомление должно вернуться к самому последнему действию приложения, не открывая его повторно (это означает, что он возобновится). также при определенном действии (и, возможно, других), мне нужно, чтобы нажатие на кнопку «Назад» вышло из приложения (и службы), поэтому в следующий раз, когда конечный пользователь запустит его через панель запуска или через долгое нажатие кнопки «домой» , он вернется к первому действию.android - возврат к приложению со службы или уведомления

короче, требования:

  • служба уведомления нажмите -> резюме текущей деятельности, не создание новой деятельности.
  • back click по определенному действию -> закрыть приложение полностью (очистка стеков всех приложений).

так, например, если у меня есть активность А, который вызывает активность B (которая является особой активностью): , если конечный пользователь нажал домой, а затем вернулся в приложении через уведомление (или запущен с помощью пусковая установка/долгое нажатие на домашней кнопке), он вернется к точному состоянию деятельности B, которое он оставил. также, если конечный пользователь нажал кнопку «Назад» в действии B, приложение закрыто (а служба и уведомления должны исчезнуть) при следующем открытии приложения (независимо от того, как) он вернется к активности A ,

Я попытался использовать «singleInstance» в действии B, но тогда он всегда будет возвращаться к активности B, поскольку он находится внутри своей собственной задачи, независимо от того, какие флаги я использую (я пробовал FLAG_ACTIVITY_REORDER_TO_FRONT и некоторые другие флаги). , не используя его, уведомление откроет новый экземпляр деятельности B.

может ли кто-нибудь помочь?

ответ

0

ОК, хотя это не совсем ответ, для моего случая я использовал «singleTop» для активности B и решил закрыть активность A при переходе к активности B.

1

альтернативным способом было бы установить намерение уведомления начать новое, поддельное действие, которое будет закрываться, как только оно будет создано. У намерения будет также флаг «FLAG_ACTIVITY_NEW_TASK».

надеюсь, что этот метод будет работать для всех. Слишком плохо это решение кажется скорее обходным решением, чем реальным решением.

другой альтернативы можно было бы по этой ссылке: Change notification intent in Android

1

Jelly Bean (Android 4.1) в настоящее время вводит новый API для этой конкретной проблемы:

http://www.youtube.com/watch?feature=player_embedded&v=Yc8YrVc47TI#t=830s

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

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

+1

они также сделали видео с навигацией, и, похоже, они не хотят, чтобы уведомление возвращалось к существующим задачам.вместо этого они хотят, чтобы он начал новую задачу, которая заменит предыдущую. я думаю, что это неправильно, а не интуитивно. вот ссылка: https://developers.google.com/events/io/sessions/gooio2012/114/. если кто-нибудь еще подумает о ответе на мой вопрос, пожалуйста, запишите его. –

Смежные вопросы