我是否需要在onDestroy期间从视图中释放View.OnClickListener?

J B*_*laz 4 android android-view

我有一个包含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) { ... }
}
Run Code Online (Sandbox Code Playgroud)

我是否需要从片段中释放侦听器onDestroy?这是内存泄漏还是会导致任何问题?清理它们是否被视为良好做法?如果可能的话,解释原因?

Nam*_*ace 5

不,您不必在onDestroy事件中释放onClickListener.即使片段是监听器,垃圾收集器也足够智能来解析循环引用.只要两者都可以进行垃圾收集,就不会有问题.