onRestoreInstanceState

onRestoreInstanceState

当用户在玩游戏时离开我的游戏时,我需要保存一些状态。保存状态似乎不是问题,但是我不知道如何恢复它。恢复onCreate时不调用Activity函数(仅在首次创建时),因此无法将状态恢复到原来的状态。从逻辑上讲,我会使用onRestoreInstanceState,但是没有被调用。

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    Log.d("RocketLaunch", "onRestoreInstanceState()");
    savedState = savedInstanceState;
}


我看到来自onSaveInstanceStateonResumeonCreate等的日志输出,但是我从没有看到来自onRestoreInstanceState的日志消息,并且savedState始终为空。为什么不调用onRestoreInstanceState,还有另一种方法使我的状态恢复?

谢谢!

最佳答案

如果用户离开,我相信您需要在onPause和onResume中进行处理。在过去30秒钟的有限测试中,我发现onRestoreInstanceState仅在方向更改期间被调用。 (以及其他可能的类似动作)

或者在onPostCreate中,它确实为您提供了保存的instanceState捆绑包。

10-08 17:56