我很难过。我似乎无法弄清楚如何在android中正确创建新的侦听器以避免内存泄漏。我是否会将静态内部类与SoftReference一起使用到外部类(因为我需要访问外部类变量)?或者我应该这样做:
setScrollListener(new ScrollListner {
//methods here.
});
答案 0 :(得分:2)
只有从活动之外的某些内容引用Scrolllistener时才会发生内存泄漏。
如果你在代码中使用了scrolllistener,那么监听器将保留对Activity的引用,因为它是一个匿名类。但是对您的侦听器的唯一引用将来自此活动引用的视图。活动完成后,垃圾收集器可以立即清理整个内存。