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 方法。

使用 CompositeaddDisposeListener 添加一个 DisposeListener 并在监听器中取消订阅。