2012-02-20 3 views
0

В андроида documentantion сказал следующее:состояние активности после startActivityForResult

... когда деятельность приостановлена ​​или остановлена, состояние активности сохраняется. Это верно, поскольку объект Activity по-прежнему сохраняется в памяти , когда он приостановлен или остановлен, - вся информация о его членах и текущее состояние все еще жива. Таким образом, любые изменения, сделанные пользователем в рамках деятельности, сохраняются таким образом, что когда активность возвращается к , передняя часть (когда она «возобновляется»), эти изменения все еще существуют.

Но в моей деятельности, когда я возвращаюсь из другой деятельности, список сменяется сбрасывается (все расширенные группы сбрасываются). Данные не изменяются, а адаптер и курсор не уведомляются или не запрашиваются. Я проверил метод callback onDestroy, который никогда не вызывается, только onPause и onStop.

Я выхожу из вида, используя startActivityForResult, и возвращаюсь с помощью finish().

Пожалуйста, почему я теряю государство? Спасибо.

ответ

0

Много раз, когда вы используете startActivityForResult, вы теряете свое состояние. Вам необходимо сохранить все соответствующие данные, переопределив onSaveInstanceState и добавив данные в Bundle. Также переопределите onRestoreInstanceState для обработки, когда вы вернетесь, и вам нужно восстановить данные. Таким образом, в вашем случае вы можете добавить в Bundle, какие части расширяемого списка расширяются, чтобы вы могли снова развернуть их при возврате.

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