我为按钮设置了监听器:
View onCreateView(...) {
...
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//some work
}
});
...
}
如果我使用ButterKnife,建议打电话给ButterKnife.unbind(this)
在onDestroyView(){..}
。是否需要删除侦听器以避免内存泄漏?
void onDestroyView() {
...
btn.setOnClickListener(null)
}
这取决于...
您是否为纵向和横向设置了不同的布局,并对其进行了配置,以便在旋转时仅破坏视图?
如果是这样,请选择是,以防止在已使用的活动/片段上引用未使用的视图(这可能会阻止其成为GC)
如果当你旋转视图和片段/活动被破坏,那么NO,你不需要做它做,GC将照顾它。
之所以存在这种差异,是因为Android在其GC上使用了Mark-Sweep算法,这将防止收集2个相互引用的未使用对象(循环引用)的情况……而不是使用对象的情况有一个未使用的引用。
关于此的一些有用的问答:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句