2014-11-14 55 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

我不是一个职业球员,但是从第一次我创建一个简单的应用程序,直到我创造了相当复杂的一个,我从未删除我的任何听众的只是释放内存。

我认为操作系统可以很好地处理它