Как сохранить экземпляр действия? - PullRequest
0 голосов
/ 02 апреля 2012

Я новичок в андроиде. Я работаю над приложением, в котором у меня есть два действия, скажем, A и B. В задании AI есть представление списка некоторых элементов. У меня есть кнопка в задании A, которая выводит меняк действию B. В действии BI есть панель поиска.

Я использую панель поиска, чтобы отфильтровать результат действия A.

У меня есть две кнопки в действии B, отмена и фильтрация..

После настройки панели поиска, если пользователь нажимает кнопку фильтра, тогда пользователь переходит к действию А и показывает результаты фильтра.Пользователь может играть между действием A и действием B.

Теперь есть три различных варианта возврата из действия B к A.

  1. Нажатием кнопки фильтра
  2. При нажатии кнопки отмены
  3. При нажатии кнопки возврата телефона

После настройки панели поиска, если пользователь нажимает кнопку фильтра, действие A переупорядочивает и показывает результаты фильтра.Здесь я хочу сохранить экземпляр действия B. Чтобы из действия A, если пользователь снова перешел в действие B, я мог показать предыдущее состояние действия B. (Я могу это сделать)

В секундуСценарий, если пользователь снова настраивает панель поиска и нажимает кнопку отмены, затем действие A переупорядочивается. Здесь я не хочу сохранять экземпляр действия B, и если пользователь снова входит в действие B из действия A, тогда я хочу показать предыдущее состояниедействия B. (Я не понимаю, как это сделать ??)

В третьем сценарии, если пользователь снова настраивает панель поиска и нажимает кнопку возврата на телефоне, тогда действие A переупорядочивается, но теперь, если пользователь снова входит вдействие B из действия A, затем действие B перезапускается, что я не хочу, здесь также я хочу показать предыдущее состояние действия B. (Я также не понимаю, как это сделать ??)

Язастрял с этой проблемой.Заранее большое спасибо.

1 Ответ

0 голосов
/ 02 апреля 2012

Вы должны рассмотреть каждый из случаев и соответственно управлять жизненным циклом деятельности. Вы сделали это просто отлично, проблема в том, как справиться с этим. Итак, первый шаг - изучить это:

активность и жизненные циклы

После того, как вы поймете, как Android управляет жизненным циклом действий, вы находитесь на своем пути: управляйте жизнью второго действия, чтобы поддерживать его состояние путем переопределения метода onPause (который вызывается, когда ваша деятельность больше не выполняется). перед приложением) или завершите действие, если вы не хотите сохранять состояние (фактически вызывая метод onStop.

Я бы решил это следующим образом:

  • в действии A я вызываю действие B с startActivityForResult Таким образом, когда действие B завершено, его состояние не поддерживается. Итак, вызовите finish () внутри действия B, чтобы вернуться к операции A без сохранения ее состояния.
    • Если вы хотите сохранить состояние действия b, вызовите действие A, чтобы вызвать метод onPause и сохранить состояние.

Надеюсь, это прояснит это для вас.

...