Eclipse e4 RCP BundleActivator

Eclipse e4 RCP BundleActivator

我需要在我的 RCP 应用程序开始时启动一些 TimerTasks。

问题是这些 classes 位于可选插件中,而不是产品定义插件中。因此我不能使用我的 LifeCycleHandler 来启动这个计时器。

听 UIEvents.UILifeCycle.APP_STARTUP_COMPLETE 没有帮助,因为这个 class 不会被实例化。

不,我尝试设置一个 BundleActivator 并在其 start() 方法中启动我的计时器,但它从未被调用。

"Bundle-Activator: xx.xxx.xxx.manager.FtpImportManager" 设置为 Activator class 并实现 BundleActivator。

有什么想法吗?

此致,

帕斯卡

Activator 启动方法仅在插件中有其他内容时调用 运行,因此这里不适合设置计时器。

使用 'fragment.e4xmi' 中定义的 'Add-on'。 class 您为插件定义的 class 将在 RCP 启动期间尽早调用。

加载项构造函数将提前调用。如果您想确保应用程序已启动,请添加一个应用程序启动完成事件方法。完整的附加组件可能如下所示:

public class MyAddon
{
  public MyAddon()
  {
    // Code runs early on during startup
  }


  @Inject
  @Optional
  public void applicationStarted(@UIEventTopic(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE) Event event)
  {
    // Code runs when application start is complete
  }
}

当应用程序启动完成时,将在 UI 线程中调用此方法。