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?匿名内部类持有对片段的引用,这可能导致泄漏;但是没有匿名的内部类我不好,我认为第一个语句与第二个语句是不同的类。