取消设置适配器内部的单击侦听器以避免内存泄漏?

时间:2018-02-27 14:01:55

标签: android memory-leaks

现状:

enter image description here

正如您所看到的,单击侦听器正在泄露。这是为什么?我知道一个解决方案,在适配器中我可以将clickListener设置为WeakReference,但这意味着,我必须在任何地方都这样做,这似乎是错误的。我想知道问题的确切根源......

我创建了这样的适配器:

mAdapter = new XAdapter(.., .., .., this);其中this在片段中实现了类。

在适配器中我设置了这样的监听器:

viewHolder.itemView.setOnClickListener {
    val position = viewHolder.adapterPosition
    if (position != NO_POSITION) {
        itemClickListener.onClick(position)
    }
}

为什么会发生这种情况以及如何避免这种情况?

0 个答案:

没有答案