0

在 C# 中,我们必须删除事件订阅,因为如果我们丢失了到对象的链接,它就会发生内存泄漏。所以我需要在java中删除监听器(例如:从停止android活动的按钮中删除监听器)还是会被垃圾收集?

mBtn.setOnClickListener(this); --> replace this by null on activity stop
4

2 回答 2

1

我不知道 stop-activitiy 是什么意思,但是一旦没有更多指向它的引用,侦听器就有资格使用垃圾收集器。换句话说,如果您的程序在活动停止时结束(对不起,我不知道活动周期),mBtn 引用将有资格用于垃圾收集器,然后监听器也是如此,而您必须根据您的上述部分将其设置为 null询问您是否只想删除侦听器(并有一个死按钮或对其应用另一个侦听器)并使其(侦听器)有资格进行垃圾收集。

于 2013-09-04T09:28:32.140 回答
0

当活动关闭时,不再引用的对象将被垃圾收集。你不需要做任何事情,这就是为什么 Java 中有垃圾收集器,可以将自己从内存分配 - 释放机制中解放出来。

于 2013-09-04T09:38:29.217 回答