onRestoreInstanceState не вызывается при пробуждении экрана? - PullRequest
2 голосов
/ 11 февраля 2011

Я написал весь необходимый код, чтобы сохранить состояние «Активность» (простая форма с виджетами EditText) и восстановить его при ротации телефона, и он прекрасно работает.

Моя проблема заключается в управлении изменениями включения / выключения экрана: при выключении вызывается onSaveInstanceState и все идет хорошо. При включенном экране onRestoreInstanceState не вызывается и не создается, только onResume.

Я что-то упустил?

Ответы [ 3 ]

12 голосов
/ 11 февраля 2011

Метод onRestoreInstanceState вызывается только в том случае, если процесс активности завершается (из-за ограничений памяти или по другим причинам), а затем восстанавливается, когда он снова становится видимым. При ротации телефона активность убивается и восстанавливается с другой ориентацией, поэтому она будет работать. Но на экране вкл / выкл это было бы не так. Деятельность не была уничтожена, поэтому нет необходимости восстанавливать

0 голосов
/ 28 июня 2012

Также вызывается при нажатии на увеличение (например, на планшете).

0 голосов
/ 11 февраля 2011

onRestoreInstanceState вызывается для сохранения состояния активности перед уничтожением.Когда экран гаснет, действие переводится в состояние паузы, потому что защита клавиатуры - это действие, которое появляется перед вашим действием.чтобы поймать цикл выключения / включения, необходимо переопределить методы onPause / onResume, как указано в http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

...