我創建了擴展性的類中的名單,列表值越來越刪除
public static List<String> myList = new ArrayList<String>();
而且我用線另一個類增值這個
ListHistory.myList.add(0, temp);
哪裏temp是一個字符串。 我可以在我的應用程序中看到值列表,但在某些情況下,例如強制關閉或在關閉/打開移動設備後列表變爲空。所以有人知道爲什麼會發生這種情況?
我創建了擴展性的類中的名單,列表值越來越刪除
public static List<String> myList = new ArrayList<String>();
而且我用線另一個類增值這個
ListHistory.myList.add(0, temp);
哪裏temp是一個字符串。 我可以在我的應用程序中看到值列表,但在某些情況下,例如強制關閉或在關閉/打開移動設備後列表變爲空。所以有人知道爲什麼會發生這種情況?
因爲靜態塊將在每個內存回收中無效。
所以不要讓它變成靜態的。在任何情況下都不需要它。
putEstra()
或persistant storage
。
他嘗試在另一個類中調用myList,因此他必須將其定義爲靜態 –
是的,這就是爲什麼我使它靜態。但如果我刪除它,我需要創建一個對象,這是不是一個普遍的,我認爲它的價值退出後的應用程序...我需要存儲的價值後,用戶回到應用程序..這是我得到通過使用靜態的,但正如你所說的,它被取消了。我想我也不能在共享首選項中存儲列表。 – Vins
通過將其聲明爲Application類來使列表全局 –
因爲靜態變量會導致內存泄漏(一旦您的應用程序關閉,靜態變量將被垃圾收集),因此不惜一切代價來避免。使用它們只適用於聲明常量而沒有別的。您可以從要使用此列表的位置實例化ListHistory類,併爲列表創建一個getter,或者您可以使用SharedPreferences
來保存此歷史記錄。
http://developer.android.com/reference/android/content/SharedPreferences.html
需要加試/異常 – Dezigo
爲什麼試試呢? – Vins