2012-11-02 67 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