代码之家  ›  专栏  ›  技术社区  ›  Computerish

在哪里恢复实例状态?

  •  1
  • Computerish  · 技术社区  · 15 年前

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

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

    我看到日志输出来自 onSaveInstanceState , onResume , 创建时的回调函数 等等,但我从未看到来自 恢复恢复状态 savedState 始终为空。为什么不是 恢复恢复状态 被叫来了,还有别的办法让我恢复状态吗?

    谢谢!

    1 回复  |  直到 15 年前
        1
  •  1
  •   BenTobin    15 年前

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

    或者在OnPostCreate中,它会提供已保存的InstanceState包。