当用户在玩游戏时离开我的游戏时,我需要保存一些状态。保存状态似乎不是问题,但是我不知道如何恢复它。恢复onCreate
时不调用Activity
函数(仅在首次创建时),因此无法将状态恢复到原来的状态。从逻辑上讲,我会使用onRestoreInstanceState
,但是没有被调用。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.d("RocketLaunch", "onRestoreInstanceState()");
savedState = savedInstanceState;
}
我看到来自
onSaveInstanceState
,onResume
,onCreate
等的日志输出,但是我从没有看到来自onRestoreInstanceState
的日志消息,并且savedState
始终为空。为什么不调用onRestoreInstanceState
,还有另一种方法使我的状态恢复?谢谢!
最佳答案
如果用户离开,我相信您需要在onPause和onResume中进行处理。在过去30秒钟的有限测试中,我发现onRestoreInstanceState仅在方向更改期间被调用。 (以及其他可能的类似动作)
或者在onPostCreate中,它确实为您提供了保存的instanceState捆绑包。