2014-10-02 2 views
0

У меня есть активность A, он запускает Activity B и B запускает службу S. в этот момент, если я нахожусь в B и нажимаю HOME BUTTON, а затем снова запускаю приложение, которое показывает мне действие B. Ничего страшного. Проблема заключается в том, когда служба S запускает уведомление, если я открою уведомление, а затем нажмите BACK BUTTON или используйте finish(), если я запустил приложение, снова показывает мне действие A, и это не нормально, я хочу увидеть Activity B. Другим решением, которое я пытаюсь найти, является то, что уведомление отправляет меня непосредственно в Activity B после его нажатия. Спасибо!перезапустить действие после уведомления

ответ

0

После запуска приложения, по умолчанию она будет загружать вашу Основной деятельность, который в этом случае является Activity A (кнопка Назад и finish() разрушает активность), нажав Главную кнопки, приложение не закрыт, он просто уходит на задний план, поэтому, когда вы снова запустили его, он снова вышел на передний план, и Активность B все еще работает.

Что нужно сделать, это изменить оповещение, чтобы начать Деятельность B при нажатии. Это то, что вам нужно сделать:

  1. Создайте свой строитель уведомлений.
  2. Создайте PendingIntent, целью которого является действие, которое вы хотите запустить.
  3. Назначить PendingIntent строителю уведомлений.
  4. Создайте и отправьте уведомление.

Вызов этого метода на уведомления Builder и передать ему PendingIntent: builder.setContentIntent(onClickPendingIntent);

Также вы можете установить нормальный рабочий процесс приложения (если нажать назад в деятельности B она должна принять Вас A, а не вне приложения, которое произойдет, если вы попытаетесь), для достижения этого вам необходимо создать TaskStackBuilder. Взгляните на эту документацию:
http://developer.android.com/guide/topics/ui/notifiers/notifications.html

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