Android: Как восстановить данные списка при нажатии кнопки «назад»? - PullRequest
1 голос
/ 15 марта 2010

Мой вопрос касается восстановления данных, связанных со сложными действиями, при возврате к действию с помощью кнопки «назад». Деятельность A имеет ListView, который подключен к ArrayAdapter, который служит его источником данных - это происходит в onCreate ().

  1. По умолчанию, если я перехожу к операции B и нажимаю «назад», чтобы вернуться к операции A, остается ли в моем списке нетронутой со всеми данными или я просто получаю визуальную «копию» экрана, но данные теряются
  2. Что я могу сделать, когда речь идет не только о деятельности? Допустим, действие A запускает действие B, которое запускает действие C, а затем я дважды нажимаю «назад», чтобы добраться до A. Как обеспечить целостность данных A, когда они возвращаются на передний план? PrefsManager, кажется, не обрабатывает сложные объекты очень интуитивно.

Спасибо, Роб

Ответы [ 2 ]

1 голос
/ 15 марта 2010

Деятельность A имеет ListView, который подключен к ArrayAdapter, который служит его источником данных

Обратите внимание, что ArrayAdapter не является постоянным хранилищем.

По умолчанию, если я перехожу к занятию B и нажимаю «назад», чтобы вернуться к занятию A, остается ли мой список без изменений со всеми данными или я просто получаю визуальную «копию» экрана, но данные теряются?

Это зависит.

Как правило, Activity A никуда не делся.Однако, если пользователь покидает приложение на длительный период, Android может уничтожить Activity A, оставив заполнитель в стеке активности, чтобы освободить память.Если впоследствии пользователь нажимает BACK, Android воссоздает Activity A. В этом случае вам нужно повесить свои данные либо с помощью постоянного хранилища (файла, базы данных и т. Д.), Либо с помощью onSaveInstanceState()и onRestoreInstanceState().

Более подробную информацию можно найти в разделе Жизненный цикл активности в описании класса деятельности.

0 голосов
/ 15 марта 2010

Если вы не активны finish() Задание A при запуске занятия B, все его данные и состояние будут присутствовать при его возврате, независимо от того, сколько заданий вы сложите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...