native-app在最小化到后台后重新启动

时间:2013-01-15 14:15:34

标签: android android-ndk savestate

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

现在,当我按下主页按钮并将我的应用程序置于背景中时 然后重新启动它,它完全重新启动。
我怎样才能恢复原状?

我已尝试在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是我要保存的所有内容的类 我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

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

阅读一些示例,您会发现将引擎置于app userData中是正常的,如:

app->userData = &engine;

并在该引擎中,从State获取结构。从这个方面来说,你可以只保存你需要的东西,然后留下另一个。

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

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