要清除所有后台活动我做了以下内容:
我保持一个静态数组列表,每当我去从一个活动到另一个,在新的活动的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月食找到我的应用程序此内存泄漏。
任何帮助将大大赞赏。