gpt4 book ai didi

android - 我应该删除 onDestroyView 中的 OnClickListener 吗?

转载 作者:行者123 更新时间:2023-11-29 15:07:43 54 4
gpt4 key购买 nike

我为我的按钮设置监听器:

  View onCreateView(...) {
...
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//some work
}
});
...
}

如果我使用ButterKnife,建议在onDestroyView(){..}中调用ButterKnife.unbind(this)。我是否需要删除监听器以避免内存泄漏?

void onDestroyView() {
...
btn.setOnClickListener(null)
}

最佳答案

这取决于...

您是否为纵向和横向设置了不同的布局,并且将其配置为仅在旋转时销毁 View ?

如果是这样,YES 以防止在已使用的 Activity/Fragment 上引用未使用的 View (这可能会阻止它成为 GC)

如果当您旋转 View 并且 Fragment/Activity 被销毁时,那么您不需要这样做,GC 会处理它。

之所以存在这种差异,是因为 Android 在其 GC 上使用了 Mark-Sweep 算法,这将防止收集 2 个相互引用(循环引用)的未使用对象的情况......但是 < strong>不是已用对象引用未使用对象的情况


一些有用的问答:

关于android - 我应该删除 onDestroyView 中的 OnClickListener 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313590/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com