我需要在我的RCP应用程序开始时启动一些TimerTasks。
问题是这些类位于可选插件中,而不是在定义插件的产品中。因此,我不能使用我的LifeCycleHandler来启动这个计时器。
侦听UIEvents.UILifeCycle.APP_STARTUP_COMPLETE没有帮助,因为这个类不会被实例化。
不,我试图设置一个BundleActivator,并在它的start()方法中启动我的计时器,但是它从未被调用。
"Bundle- Activator : xx.xxx.xxx.manager.FtpImportManager“被设置为Activator类并实现BundleActivator。
有什么想法吗?
诚挚的问候,
Pascal
发布于 2015-08-24 14:38:52
Activator方法仅在插件中的其他内容运行时才被调用,因此这不是设置计时器的合适位置。
使用在片段中定义的“附加”。e4xmi。您为外接程序定义的类将在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线程中调用此方法。
https://stackoverflow.com/questions/32184873
复制相似问题