我在一个扩展活动的类中创建了一个列表,
public static List<String> myList = new ArrayList<String>();
我正在使用行
在另一个类中为此添加值 ListHistory.myList.add(0, temp);
其中temp是一个字符串。 我可以在我的应用程序中看到值列表,但在某些情况下,例如强制关闭或在关闭/打开移动设备后,列表将变为空。所以有人知道为什么会这样吗?
答案 0 :(得分:0)
因为静态块将在每次内存循环时无效。
所以不要让它静止。在任何情况下都没有必要。
putEstra()
或persistant storage
。
答案 1 :(得分:0)
应不惜一切代价避免使用静态变量,因为它们会导致内存泄漏(一旦应用程序处于CLOSED状态,静态变量将被垃圾收集)。使用它们只能用于声明常量而不是其他任何东西。您可以从要使用此列表的位置实例化ListHistory类并为列表创建getter,也可以使用SharedPreferences
保存此历史记录。
http://developer.android.com/reference/android/content/SharedPreferences.html