Лучший способ прекратить работу мастера в Android - PullRequest
2 голосов
/ 03 октября 2010

У меня есть мастер бронирования в Android, когда я говорю «мастер», я имею в виду, что у меня есть несколько действий (то есть экранов), которые передаются от одного к другому до завершения бронирования.на каждом этапе пути моя информация может быть недействительной, и поэтому мне придется отслеживать 2-3 действия и начинать все сначала, все действия, которые я отслеживал, должны быть уничтожены, им может потребоваться аннулировать контейнер одноэлементных данных, который они заполнилиих данные.Я подумал о 2 способах сделать это:

  1. начать все действия, связанные с мастером, с startActivityForResult(), поэтому я получаю уведомление, когда действие завершено и с каким кодом ошибки (закончено, ОК или произошла ошибка)и действуйте соответственно (например: если в середине действие не выполнено, оно вернется не выполненным, а предыдущее также будет возвращаться как неудачное, пока я не доберусь до первого действия мастера, где я либо сообщу об ошибке в диалоговом окне, либо покажу «спасибо»'screen.)
  2. Я могу отправить реакцию на намерения с определенными параметрами, поэтому у меня есть сообщение о намерении «закрыть и очистить», которое закрывает предыдущее действие и т. д. *

какой способ лучше, любой другой интересный \ эффективный способ сделать это?

1 Ответ

0 голосов
/ 05 октября 2010

Я получил подсказку, которая заставила меня задуматься в другом направлении:

  1. использовать невидимую активность или, альтернативно, локальную службу, то есть «мозги», которые на каждом шагу знают, какое действие необходимо предпринять. чтобы удалить полный набор ненужных действий, я должен использовать FLAG_ACTIVITY_CLEAR_TOP в нижней части большинства действий, которые я хочу использовать в следующем.
  2. Еще один вариант - заключить все действия, с которыми я хочу играть их расположение на стеке внутри объект ActivityGroup, который хранит все действия живы (как на вкладке) и в стеке, но вы контролируете какой отображается, а какой не. группа действий будет содержать логика конечного автомата относительно какой Активити не должно быть отображается и который должен быть расположенных.
...