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;

そしてそのエンジンで、州からの構造体を持つこと。そのようにして、必要なものだけを保存し、他のものを残すことができます。

重要なことは、その保存状態の値(三角形の色など)を常に使用し、作成したコードで復元することです。

PD:より複雑なことについては、ダイナミックメモリを使用する場合、データをより微妙に保存する必要があります。

于 2013-02-14T19:52:27.790 に答える