2

我很难过。我似乎无法弄清楚如何在 android 中正确创建新的侦听器以避免内存泄漏。我是否会使用带有对外部类的 SoftReference 的静态内部类(因为我需要访问外部类变量)?或者我应该做这样的事情:

setScrollListener(new ScrollListner {

//methods here.

});
4

1 回答 1

3

仅当 Scrolllistener 是从您的活动之外的某些内容中引用时,才会发生内存泄漏。

如果您在代码中使用滚动侦听器,则侦听器将保留对您的引用 Activity 因为它是一个匿名类。但是对您的听众的唯一引用将来自该活动引用的视图。一旦活动完成,垃圾收集器可以立即清理整个内存。

于 2012-11-02T08:56:26.520 回答