Eclipse RCP:如何以及何时正确地从 EventBroker 取消订阅 Composite?
Eclipse RCP: How and when to correctly unsubscribe a Composite from EventBroker?
在我的自定义组合(继承自 SWT Composite
)的构造函数中,我将自己注册为 Eclipse IEventBroker
。
为了取消订阅,我重写了我自己取消订阅的 dispose
方法。
但我现在注意到取消订阅并没有发生,实际上 dispose
方法从未被调用过。
取消订阅或避免关闭 Composite/ViewPart 留下 "leaking" 事件处理程序的正确方法是什么?
我使用 Eclipse RCP 3.x(所以没有 annotations/injection)。在 E4 中,如果我理解正确的话,我可以使用自动事件订阅或@Predestroy 方法。
使用 Composite
的 addDisposeListener
添加一个 DisposeListener
并在监听器中取消订阅。
在我的自定义组合(继承自 SWT Composite
)的构造函数中,我将自己注册为 Eclipse IEventBroker
。
为了取消订阅,我重写了我自己取消订阅的 dispose
方法。
但我现在注意到取消订阅并没有发生,实际上 dispose
方法从未被调用过。
取消订阅或避免关闭 Composite/ViewPart 留下 "leaking" 事件处理程序的正确方法是什么?
我使用 Eclipse RCP 3.x(所以没有 annotations/injection)。在 E4 中,如果我理解正确的话,我可以使用自动事件订阅或@Predestroy 方法。
使用 Composite
的 addDisposeListener
添加一个 DisposeListener
并在监听器中取消订阅。