0

我有一个简单的本机应用程序进行调试,
只显示一个慢慢改变颜色的三角形。

现在,当我按下主页按钮并将我的应用程序置于后台
然后再次启动它时,它会完全重新启动。
我怎样才能恢复旧状态?

我已经尝试过这样做native-app-example

app->userdata = &my_state;

if (app->savedState != NULL)
    my_state = *(State*)app->savedState;

handle_cmd与:

    case APP_CMD_SAVE_STATE:
        app->savedState = malloc(sizeof(State));
        *((State*)app->savedState) = my_state;
        app->savedStateSize = sizeof(State);
        break;

State我想保存的所有东西在哪里上课。
我怎么能这样做?

4

1 回答 1

0

不一定要上课。它可能是一个结构(实际上是“相同的”)。您必须拥有在该结构或类中恢复应用程序状态所需的所有值,并从该位置读取。

阅读一些示例,您会发现在应用程序 userData 中放置一个引擎是很正常的,例如:

app->userData = &engine;

并在该引擎中,具有来自 State 的结构。通过这种方式,您可以只保存您需要的东西,而留下另一个。

重要的是始终使用该保存状态的值(如三角形的颜色),并使用您编写的代码进行恢复。

PD:对于更复杂的事情,当你使用动态内存时,你必须更微妙地保存数据。

于 2013-02-14T19:52:27.790 回答