Сохранение состояний просмотра с помощью Honeycomb - PullRequest
0 голосов
/ 21 августа 2011

Я разработал довольно простую игру, в которой для рисования на экране используется собственный вид. На моем телефоне (Android 2.2) я могу нажать кнопку «Домой» на устройстве и выполнить другие задачи. При возвращении в игру она восстанавливается до того состояния, в котором она была раньше. Дело в том, что мне не нужно было переопределять какие-либо методы или делать что-либо для того, чтобы это происходило. Однако в Honeycomb он сбрасывает все, как я ожидал.

Это очень загадочно ... Мне было интересно, есть ли способ заставить Сота вести себя как 2.2 в этом отношении. Я не слишком знаком с сохранением состояний просмотра, но, поскольку у меня есть МНОЖЕСТВО переменных (сотни, в зависимости от того, как сохраняются пользовательские объекты), я думаю, что делать это вручную неприятно.

1 Ответ

1 голос
/ 22 августа 2011

Я смог решить это.Вид.

По сути, проблема была вызвана тем, что в моей деятельности Android обрабатывает экран в портретном режиме.В 2.2 Android открывал активность в портретном режиме и не перезапускал активность.Однако в Android 3.0 он открывает действие, а затем поворачивает экран, заставляя его перезапустить действие (поскольку это происходит при повороте).

Чтобы исправить это, я добавил в свое действие следующеев манифесте:

android:configChanges="keyboardHidden|orientation"

Это говорит Android, что вы будете обрабатывать изменения конфигурации самостоятельно.В моем случае я ничего не делаю, поскольку мое приложение заблокировано в портретном режиме.

Причина, по которой состояние не очищается при приостановке приложения, заключается в том, что onCreate () не вызывается.Я знаю, что Android может уничтожить приложение, которое вызовет onCreate (), поэтому мне все равно придется справляться с этой ситуацией, сохраняя переменные Activity и воссоздавая View с ними.

...