private ArrayList<OutputInputPair> pairs = new ArrayList<OutputInputPair>();
public void process() {
while (!stopped) {
for (OutputInputPair pair : pairs) {
processCommandPairs(pair);
}
}
}
首先当用户单击停止按钮时,stopped = true
因此,如果用户没有单击按钮,
始终执行 processCommandPairs
方法。
当停止按钮点击时
@Override
public void stop() {
Log.d(TAG, "STOP memory leak");
pairs.clear();
pairs = null;
stopped = true;
}
我只有1个问题,如果用户不点击按钮,数组列表中会发生内存泄漏是对的吗?
如果不是,如何避免 arraylist 上的内存泄漏?
最佳答案
重写 Activity 的 onDestroy
方法,并将 stopped
显式设置为 true,以便在 Activity 关闭时退出 while 循环,并且 ArrayList 可用于垃圾回收.
关于java - 使用 arraylist 和 foreach 时如何避免内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46901298/