当我释放听众并且是否有必要时,我很有意思?如果我不这样做会导致内存泄漏吗?
我知道需要发布类似的东西:
@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
....
他们会泄漏吗?
答案 0 :(得分:3)
他们会泄漏吗?
很难说没有看到如何处理。如果您想确定,请使用null
作为参数进行调用。
答案 1 :(得分:2)
他们会泄漏吗?
在上述简单的情况下,它不应该。除非文档中明确指出,否则使用Android框架监听器通常不需要特殊处理。对于上述方法,无需特殊处理。
当垃圾收集器无法收集对象引用时,通常会导致内存泄漏。就像持有对重物一样的引用,例如Activity
或View
,不容易被释放。或者对于未声明为static
的内部类,因为它们隐式地具有对父类的引用。