我应该释放听众吗?

时间:2016-03-23 08:55:06

标签: android

当我释放听众并且是否有必要时,我很有意思?如果我不这样做会导致内存泄漏吗?

我知道需要发布类似的东西:

@Override
protected void onResume() {
   super.onResume();
   currentUser.addOnUserUpdateListener(this);
}


@Override
protected void onPause() {
    super.onPause();
    /* will be serious leak memory if don't do this */
    currentUser.removeOnUserUpdateListener(this);
}

但是怎么样

setNavigationOnClickListener, 
setOnEditorActionListener
....

他们会泄漏吗?

2 个答案:

答案 0 :(得分:3)

  

他们会泄漏吗?

很难说没有看到如何处理。如果您想确定,请使用null作为参数进行调用。

答案 1 :(得分:2)

  

他们会泄漏吗?

在上述简单的情况下,它不应该。除非文档中明确指出,否则使用Android框架监听器通常不需要特殊处理。对于上述方法,无需特殊处理。

当垃圾收集器无法收集对象引用时,通常会导致内存泄漏。就像持有对重物一样的引用,例如ActivityView,不容易被释放。或者对于未声明为static的内部类,因为它们隐式地具有对父类的引用。