在 GWT 中,我有类 MyClass
注册了一些事件处理程序。 MyClass
有一个对象 (object1
),在特定时刻,我想完成并使其处理程序停止监听,因为在那之后我将创建一个不同的 MyClass
对象 (object2
)。
我该怎么做?我已经尝试使用 object1 = null
,但它的处理程序一直在监听(至少有一段时间)。
最佳答案
处理程序可能仍然存在,因为 gc 没有绕过销毁它们。 如果监听器不再存在很重要,则需要注销它们。
一种方法是注销 HandlerRegistration。例如 addClickHandler返回 HandlerRegistration可以注销。何时以及如何执行此操作取决于您的 GUI 类。您可以将注销放在您的 finalize 方法中,但您可能会发现这些方法被偶尔调用,因为 gc,当然因为这不是 java 而是 javaScript。所以考虑将它们放在 gui 元素的分离或销毁方法中 onDetach或 onUnload .
关于java - GWT:完成对象并删除其事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377685/