【发布时间】:2012-06-01 06:25:26
【问题描述】:
为了清除所有后台活动,我做了以下操作:
我保留了一个静态数组列表,每当我从一个活动转到另一个活动时,在新活动的 onCreate() 方法中,我将当前活动的对象添加到该列表中,如下所示:
SomeClass.addActivity(CurrentActivity.this);
我在每个活动中都添加了上述语句。
addActivity():
public void addActivity(final Activity activity) {
activityList.add(activity);
}
当我想清除堆栈时,我调用了:
public boolean clearStack() {
for (Activity activity : activityList) {
activity.finish();
}
activityList.clear();
return (activityList.isEmpty());
}
这样,我清除了我的活动堆栈。
但它产生了内存泄漏。这不是正确的做法。持有对活动的引用是不行的。你们能解释一下在这种情况下发生内存泄漏的原因和方式吗?
我使用 MAT for eclipse 在我的应用程序中发现了这个内存泄漏。
任何帮助将不胜感激。
【问题讨论】:
标签: android memory-leaks