大家好。我们在 Eclipse RCP 应用程序中使用 OSGi 服务。为了跟踪它们,我们使用了这个org.osgi.util.tracker.ServiceTracker
类。应用程序的示例代码如下所示
mailServiceTracker = new ServiceTracker(context, MailService.class.getName(), null);
mailServiceTracker.open();
MailService service = (MailService) mailServiceTracker.getService();
现在我的问题是,当我创建新服务时,该getService()
方法经常返回。null
该代码对于应用程序中存在很长时间的服务非常有效,但是每次创建新服务时,我都必须做很多事情,直到最终找到并跟踪该服务。例如,我经常尝试
- Eclipse 中的“清洁...”
- '刷新' Eclipse 中的所有项目
- 在命令行上重建项目
有时这些东西会有所帮助,有时它们不会。有没有人有使用这些跟踪器的经验,可以告诉我如何避免这种行为以及如何在创建后立即跟踪服务?
谢谢