我有一个包含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
?这是内存泄漏还是会导致任何问题?清理它们是否被视为良好做法?如果可能的话,解释原因?
不,您不必在onDestroy事件中释放onClickListener.即使片段是监听器,垃圾收集器也足够智能来解析循环引用.只要两者都可以进行垃圾收集,就不会有问题.