我已经编写了所有需要的代码来保存我的Activity状态(一个带有EditText小部件的简单表单)并在电话轮换时恢复它并且效果很好。
我的问题是管理屏幕开/关更改:当关闭时,调用onSaveInstanceState并且一切顺利。 在屏幕上,不调用onRestoreInstanceState,也不调用onCreate,仅调用onResume。
我错过了什么吗?
答案 0 :(得分:12)
仅当活动进程被终止(由于内存限制或其他一些原因)时才会调用onRestoreInstanceState方法,然后在再次可见时恢复。在电话轮换时,活动被杀死并以不同的方向恢复,因此它将起作用。但是在屏幕上开/关,情况并非如此。该活动尚未销毁,因此无需恢复
答案 1 :(得分:-1)
onRestoreInstanceState被调用以在被杀死之前保存活动的状态。 当屏幕熄灭时,活动将处于暂停状态 - 因为键盘锁是一项活动,位于您的活动之前。 要关闭on / on循环屏幕,必须覆盖onPause / onResume方法,如http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle中所述
答案 2 :(得分:-1)
在缩放时也会调用它(例如在平板电脑上)。