2014-11-14 56 views
1

我有一個關於爲監聽器設置自定義視圖時發生內存泄漏的問題。 我有如下的自定義視圖MyView的:刪除監聽器,以避免內存泄漏

class MyView extends View{ 
    private IOnSelectionListener listener; 

    public void setOnSelectionListener(IOnSelectionListener listener){ 
     this.listener = listener; 
    } 

    public void removeOnSelectionListener(){ 
     this.listener = null; 
    } 
} 

我有它實現了IOnSelectionListener一個活動。該活動有代碼如下

MyView myView; 
public onCreate(){ 
    myView = (MyView)findViewbyId(R.id.selectionview); 
    myView.setOnSelectionListener(this); 

} 

onDestroy(){ 
    myView.removeOnSelectionListener() 
} 

現在,當我瀏覽到另一個活動或我更改方向,應該聽者應爲MyView的,以避免內存泄漏刪除?

此外,如果使用WeakReference,那麼我們是否需要有一個removeListener方法?

問候, 的SrS

回答

1

我不是一個職業球員,但是從第一次我創建一個簡單的應用程序,直到我創造了相當複雜的一個,我從未刪除我的任何聽衆的只是釋放內存。

我認爲操作系統可以很好地處理它