2011-11-13 75 views
0

我創建了擴展性的類中的名單,列表值越來越刪除

public static  List<String> myList = new ArrayList<String>(); 

而且我用線另一個類增值這個

ListHistory.myList.add(0, temp);

哪裏temp是一個字符串。 我可以在我的應用程序中看到值列表,但在某些情況下,例如強制關閉或在關閉/打開移動設備後列表變爲空。所以有人知道爲什麼會發生這種情況?

+0

需要加試/異常 – Dezigo

+0

爲什麼試試呢? – Vins

回答

0

因爲靜態塊將在每個內存回收中無效。

所以不要讓它變成靜態的。在任何情況下都不需要它。

putEstra()persistant storage

+0

他嘗試在另一個類中調用myList,因此他必須將其定義爲靜態 –

+0

是的,這就是爲什麼我使它靜態。但如果我刪除它,我需要創建一個對象,這是不是一個普遍的,我認爲它的價值退出後的應用程序...我需要存儲的價值後,用戶回到應用程序..這是我得到通過使用靜態的,但正如你所說的,它被取消了。我想我也不能在共享首選項中存儲列表。 – Vins

+0

通過將其聲明爲Application類來使列表全局 –

0

因爲靜態變量會導致內存泄漏(一旦您的應用程序關閉,靜態變量將被垃圾收集),因此不惜一切代價來避免。使用它們只適用於聲明常量而沒有別的。您可以從要使用此列表的位置實例化ListHistory類,併爲列表創建一個getter,或者您可以使用SharedPreferences來保存此歷史記錄。

http://developer.android.com/reference/android/content/SharedPreferences.html