2012-11-02 43 views
1

我对这个难倒内存泄漏。我似乎无法弄清楚在android中如何正确创建新的监听器以避免内存泄漏。我会用一个静态内部类与SoftReference的外部类(因为我需要访问外部类的变量)?或者我应该这样做:避免内部类的Android

setScrollListener(new ScrollListner { 

//methods here. 

}); 
+0

为什么内存泄漏内部类? – 2012-11-02 08:46:11

+0

哪个内部类?静态的还是我提供的示例? – HAxxor

+0

如果使用得当,不是会不会内存泄漏在任何情况下 – 2012-11-02 08:49:07

回答

2

内存泄漏应该只发生在Scrolllistener是从您的活动外部引用的情况下。

如果使用scrolllistener,因为它是在你的代码监听器将保持对它的引用您的活动,因为它是一个匿名类。但唯一引用您的监听器的参考将来自此活动参考的视图。活动完成后,垃圾收集器可以立即清理整个内存。

+0

我看到什么youre现在说。当我加载约300个物品的列表时,我只是不断收到OOM错误。我不确定什么是错的。我正在使用视图模式,并且我没有图像。我认为这是我的非静态内部类。我非常坚持这一点。 – HAxxor

+0

也许这是项目本身的列表,发布更多的代码在另一个问题,也许我们可以帮助你 – Janusz