当用户在游戏过程中离开我的游戏时,我需要保存一些状态。保存状态似乎不是问题,但我无法弄清楚如何恢复它。 onCreate
恢复时Activity
函数未被调用(仅在首次创建时),因此我无法将状态恢复到那里。从逻辑上讲,我会使用onRestoreInstanceState
,但它没有被调用。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.d("RocketLaunch", "onRestoreInstanceState()");
savedState = savedInstanceState;
}
我看到来自onSaveInstanceState
,onResume
,onCreate
等的日志输出,但我从未看到onRestoreInstanceState
和savedState
的日志消息始终为空。为什么不调用onRestoreInstanceState
,还有另一种方法可以恢复我的状态吗?
谢谢!
答案 0 :(得分:1)
如果用户离开,我相信你需要在onPause和onResume中处理这个问题。在过去30秒的非常有限的测试中,我发现我的onRestoreInstanceState仅在方向更改期间被调用。 (可能还有其他类似的行动)
或者也许在onPostCreate中,它会为您提供已保存的instanceState包。