我有一个包含100个碎片的大型项目。他们几乎都遵循我将描述的模式,我的问题将随之而来。
public class MyFragment extends Fragment implements View.OnClickListener {
public void onDestroy(...) {
}
public void onCreateView(...) {
...
root.findViewById(R.id.some_button).setOnClickListener(this);
return root;
}
public void onClick(View v) { ... }
}
我是否需要从onDestroy
中的片段中释放侦听器?这是内存泄漏还是会导致任何问题?清理它们是否被视为良好做法?如果可能的话,解释原因?
答案 0 :(得分:5)
不,您不必在onDestroy事件中释放onClickListener。即使片段是监听器,垃圾收集器也足够智能,甚至可以解析循环引用。只要两者都可以进行垃圾收集,就不会有问题。