2013-01-15 38 views
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是我要保存所有的東西類。
我怎麼能這樣做?

回答

0

沒有必要成爲一個班級。它可能是一個結構(實際上是「相同的」)。您必須擁有您需要的所有值才能恢復該結構或類中的應用程序狀態,並從該位置讀取。

閱讀一些例子,你會看到,它是正常的把發動機在應用程序用戶數據,如:

app->userData = &engine; 

和發動機,有國務院的結構。從這個角度來看,你只能保存你所需要的東西,然後離開另一個。

重要的是始終使用保存狀態下的值(如三角形的顏色),並使用您編寫的代碼進行恢復。

PD:對於更復雜的事情,當您使用動態內存時,您必須更細微地保存數據。

相關問題