首页 > 解决方案 > 无法恢复我的 android c++ 游戏的状态(state->savedState 始终为 NULL)

问题描述

我正在使用 android studio 开发我的 android full c++ 游戏,我使用了来自 google 示例(native-activity)的代码。一切正常。但是当我点击模拟器上的 BACK BUTTON 时,游戏进入后台,当我恢复游戏时,游戏从头开始重新开始,而不是继续。我在应用程序的状态中添加我的变量,并在应用程序启动时尝试重新加载我的“游戏状态”。

问题是 state->savedState 总是等于 NULL。即使在恢复应用程序之后。

这是代码: https ://github.com/googlesamples/android-ndk/blob/master/native-activity/app/src/main/cpp/main.cpp#L327

我在我的 xml 中添加了这一行: android:alwaysRetainTaskState="true" 在我的活动中

标签: androidc++android-ndk

解决方案


如果您的游戏被系统抢占,将获得有效的已保存状态。例如,尝试拨打运行应用程序的电话。

当用户点击返回按钮时,系统不会干预。保存和恢复游戏状态是您的责任。您可以在 app_handle_event 中拦截 AKEYCODE_BACK


推荐阅读