要清除所有后台活动,我执行了以下操作:
我保留了一个静态数组列表,每当我从一个活动转到另一个活动时,在新活动的 onCreate() 方法中,我将当前活动的对象添加到该列表中,如下所示:
SomeClass.addActivity(CurrentActivity.this);
我在每个活动中添加了上述语句。
添加活动():
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 在我的应用程序中找到了这个内存泄漏。
任何帮助将不胜感激。