在哪里恢复实例状态?

时间:2010-08-24 15:26:48

标签: android

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

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

我看到来自onSaveInstanceStateonResumeonCreate等的日志输出,但我从未看到onRestoreInstanceStatesavedState的日志消息始终为空。为什么不调用onRestoreInstanceState,还有另一种方法可以恢复我的状态吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果用户离开,我相信你需要在onPause和onResume中处理这个问题。在过去30秒的非常有限的测试中,我发现我的onRestoreInstanceState仅在方向更改期间被调用。 (可能还有其他类似的行动)

或者也许在onPostCreate中,它会为您提供已保存的instanceState包。