Android ClickListener从未解除分配?
我得到了一个Android ClickListener从未解除分配?,android,memory-leaks,Android,Memory Leaks,我得到了一个片段,并在按钮中添加了一个ClickListener: $.btnAdd.setOnClickListener(new ViewOnClickListenerOnAddButtonClicked()); 根据内存分析器,它永远不会被释放;当我在相应的片段之间来回导航时,似乎片段本身只存在一次,但每次点击监听器的次数相加 对于测试,我添加了一个完全空的: private static class ViewOnClickListenerOnAddButtonClicked implem
片段
,并在按钮中添加了一个ClickListener
:
$.btnAdd.setOnClickListener(new ViewOnClickListenerOnAddButtonClicked());
根据内存分析器
,它永远不会被释放;当我在相应的片段
之间来回导航时,似乎片段
本身只存在一次,但每次点击监听器的次数相加
对于测试,我添加了一个完全空的:
private static class ViewOnClickListenerOnAddButtonClicked implements View.OnClickListener {
@Override
public void onClick(View v) {
}
}
(该名称也是我在MemoryAnalyzer
中找到的唯一名称)
以下是内存分析器的输出:
第一个是片段
本身,它的计数为1,但是ViewOnClickListenerOnAddButtonClicked
现在似乎存在4次(每次我导航到它时都有一次)
当有一个空的OnClickListener
时,这可能是什么原因?您有没有用这两个类手动调用GC?匿名内部类持有对片段的引用,这可能导致泄漏;但是没有匿名的内部类我不好,我认为第一个语句与第二个语句是不同的类。