2015-03-31 42 views
0

我每次查看与下面的行初始化时添加事件处理程序:检查GWT EventBus有一个事件处理程序或不

AGWTService.App.getEventBus().addHandler(AnEvent.TYPE, this.AClass); 

这导致多个事件在应用程序的生命周期处理。但是,没有办法从EventBus中删除处理程序,或者检查EventBus是否已经有EventHandler。就我而言,EventBus是一个静态SimpleEventBus类:

private static final EventBus EVENT_BUS = GWT.create(SimpleEventBus.class); 

我试着换EventBus与ResettableEventBus,但并没有帮助。在视图上处理EventBus的正确方法是什么?

回答

4

addHandler()方法返回一个HandlerRegistration removeHandler()方法,您可以使用该方法删除您的处理程序。

+0

是的,这项工作!谢谢。提供remove()方法的处理程序类型而不是一次性删除所有这些将是很好的。 – baris 2015-03-31 12:46:18

+1

当您调用HandlerRegistration#remove() - HandlerRegistration对象返回时,只会删除一个处理程序。 – 2015-03-31 17:04:28

+0

忘了写,确切的方法名是removeHandler()。 – baris 2015-04-01 08:01:08