Android выдвигает новое действие, одновременно очищая других - PullRequest
4 голосов
/ 14 мая 2011

У меня есть серия заданий A, B, C, которые после завершения должны перенести новое занятие Y в мою домашнюю деятельность. Стек задач должен выглядеть следующим образом.

  • H
  • H-> A
  • Н-> А-> В
  • Н-> A-> B-> C
  • H-> Y

Мне нужна кнопка «назад», чтобы можно было вернуться из C в B или B обратно в A, но затем C «готово», и мне нужно перейти, если Y будет активной задачей. И «назад» от Y нужно вернуться домой (H).

Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 мая 2011

Вы можете запустить for activty H с флагом FLAG_ACTIVITY_CLEAR_TOP. Это вызвало бы метод действия onNewIntent() H. Вы можете установить соответствующие дополнения в этом намерении и использовать их для запуска Activity Y

1 голос
/ 14 мая 2011

Джейми, ты сейчас занимаешься Android? Какая страшная мысль! В любом случае, finish() - ваш друг, когда дело доходит до удаления действий из стека. Вы можете вызывать его несколько раз для извлечения нескольких действий из стека.

В качестве альтернативы, вы также можете стереть весь стек, передав флаг FLAG_ACTIVITY_CLEAR_TOP в своем намерении (но звучит так, как будто вы хотите сохранить H, так что это не может быть мудрым выбором).

Кстати, я еще не играл с FLAG_ACTIVITY_NEW_TASK, но это может сработать в вашем случае. Передайте его перед началом A. Это может быть совершенно бесполезным в вашем случае, поэтому просто поэкспериментируйте с ним немного.

РЕДАКТИРОВАТЬ: немного поигрался, несколько раз вызывая финиш () фактически не работает, как ожидалось. Я заставил его работать, запустив H с FLAG_ACTIVITY_CLEAR_TOP, а затем сразу же Y (т.е. два startActivity вызова в одной функции).

...