屏幕唤醒时没有调用onRestoreInstanceState?

时间:2011-02-11 09:31:44

标签: android screen state

我已经编写了所有需要的代码来保存我的Activity状态(一个带有EditText小部件的简单表单)并在电话轮换时恢复它并且效果很好。

我的问题是管理屏幕开/关更改:当关闭时,调用onSaveInstanceState并且一切顺利。 在屏幕上,不调用onRestoreInstanceState,也不调用onCreate,仅调用onResume。

我错过了什么吗?

3 个答案:

答案 0 :(得分:12)

仅当活动进程被终止(由于内存限制或其他一些原因)时才会调用onRestoreInstanceState方法,然后在再次可见时恢复。在电话轮换时,活动被杀死并以不同的方向恢复,因此它将起作用。但是在屏幕上开/关,情况并非如此。该活动尚未销毁,因此无需恢复

答案 1 :(得分:-1)

onRestoreInstanceState被调用以在被杀死之前保存活动的状态。 当屏幕熄灭时,活动将处于暂停状态 - 因为键盘锁是一项活动,位于您的活动之前。 要关闭on / on循环屏幕,必须覆盖onPause / onResume方法,如http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle中所述

答案 2 :(得分:-1)

在缩放时也会调用它(例如在平板电脑上)。