GWT:终止对象并删除其事件处理程序

时间:2012-11-14 11:10:55

标签: java events gwt event-handling

在GWT中,我有一个类MyClass来注册一些事件处理程序。 object1有一个对象(MyClass),在某一特定时刻,我想完成并让其处理程序停止收听,因为在此之后我将创建一个不同的MyClass对象(object2)。

我该怎么做?我已经尝试过使用object1 = null,但是它的handerls一直在听(至少有一段时间)。

1 个答案:

答案 0 :(得分:6)

处理程序可能仍然存在,因为gc没有绕过它们来破坏它们。 如果听众不再继续存在很重要,那么他们需要取消注册。

执行此操作的一种方法是取消注册HandlerRegistration。例如,addClickHandler返回HandlerRegistration,可以取消注册。何时以及如何执行此操作取决于您的GUI类。你可以在你的finalize方法中放弃注销,但是你可能会发现这些方法因为gc而被非常偶然地调用,当然因为这不是java而是javaScript。因此,将它们置于gui元素onDetachonUnload的分离或破坏方法中。\ n \ n \ n