2013-03-25 83 views
-1

我的問題是,當我試圖重新啓動應用程序後一個小時,應用程序打開與空數據,我beleive內核刪除資源沒有殺死process.please幫助我.thxAndroid:應用程序重新啓動與空數據

+1

無代碼片段和logcat的,它真的很難幫你。 – SudoRahul 2013-03-25 09:55:38

+0

好吧,例如我使用靜態數組列表,我在那裏存儲數據,但是當我重新打開應用程序,我看到一個空的列表視圖 – user1328435 2013-03-25 10:05:07

+0

你不應該在android應用程序中使用靜態變量,嘗試使用一些持久存儲,並且只要需要在Bundle – 2013-03-25 10:15:21

回答

0

你是什麼意思與「空數據」? 如果你的意思是一些動態變量,當然應用程序重啓後它們的狀態將會丟失。

您應該處理應用程序關閉事件並保存所需的數據,然後恢復所需的數據。

例如,你可以處理的活動,要數據和存儲所需的數據保存在SharedPreferences或文件或SQLite databaseonPause()方法。然後在onResume()方法中恢復該數據。

我建議您閱讀有關Android AppsActivitiesFragments生命週期。

UPD:

你說,你正在使用靜態ArrayList和存儲數據有,當然數據將應用程序重新啓動後丟失。因此,您需要將數據從ArrayList保存到filedatabase或使用最簡單的解決方案並將其存儲在Bundle中。

例子:

/** 
* Saving data 
*/ 
@Override 
public void onSaveInstanceState(Bundle savedInstanceState) 
{ 
    super.onSaveInstanceState(savedInstanceState); 
    // Here you can save your data 
    // If you want to store your ArrayList, it should implement Parselable 
    savedInstanceState.putParcelableArrayList("STORE_KEY", yourArrayListWhichShouldImplementParcelable); 
} 

/** 
* Restoring data 
*/ 
@Override 
public onRestoreInstanceState(Bundle savedInstanceState) 
{ 
    super.onRestoreInstanceState(savedInstanceState); 
    yourArrayList = (YourArrayList) savedInstanceState.getParcelableArrayList("STORE_KEY"); 
} 

像這樣的事情

+0

中的活動之間傳遞數據,我可以在內核刪除資源以釋放內存時終止應用程序嗎? – user1328435 2013-03-25 10:16:56