Osgi 为什么要在addingService(ServiceReference)方法中返回服务实例?
在几本书中,他们说取消设置所有getted服务是一种很好的做法,但在我看到的servicetracker实现的每个示例中,都定义了如下方法:Osgi 为什么要在addingService(ServiceReference)方法中返回服务实例?,osgi,Osgi,在几本书中,他们说取消设置所有getted服务是一种很好的做法,但在我看到的servicetracker实现的每个示例中,都定义了如下方法: @Override public Object addingService(ServiceReference reference) { IQuoteService service = (IQuoteService) context.getService(reference); /* some stuff */ return se
@Override
public Object addingService(ServiceReference reference) {
IQuoteService service = (IQuoteService) context.getService(reference);
/* some stuff */
return service;
}
然后返回服务实例。。。我如何知道/保证此方法返回的实例将永远被解除绑定?请参阅ServiceTracker和ServiceTrackerCustomizer的源代码和javadoc。默认实现在removedService(…)函数中调用unget: 您应该在ServiceTrackerCustomizer(或继承的ServiceTracker)中以相同的方式实现该功能
然而,ServiceTracker是低级API。只有当您的用例无法用Felix SCR或其任何替代方案解决时,您才需要它。请参阅ServiceTracker和ServiceTrackerCustomizer的源代码和javadoc。默认实现在removedService(…)函数中调用unget: 您应该在ServiceTrackerCustomizer(或继承的ServiceTracker)中以相同的方式实现该功能
然而,ServiceTracker是低级API。只有当您的用例无法用Felix SCR或其任何替代方案解决时,您才需要它。请参阅ServiceTracker和ServiceTrackerCustomizer的源代码和javadoc。默认实现在removedService(…)函数中调用unget: 您应该在ServiceTrackerCustomizer(或继承的ServiceTracker)中以相同的方式实现该功能
然而,ServiceTracker是低级API。只有当您的用例无法用Felix SCR或其任何替代方案解决时,您才需要它。请参阅ServiceTracker和ServiceTrackerCustomizer的源代码和javadoc。默认实现在removedService(…)函数中调用unget: 您应该在ServiceTrackerCustomizer(或继承的ServiceTracker)中以相同的方式实现该功能
然而,ServiceTracker是低级API。只有当您的用例无法用Felix SCR或其任何替代方案解决时,您才需要它。谢谢!我会进一步调查菲利克斯的!到目前为止,我一直在使用ServiceTracker,谢谢!我会进一步调查菲利克斯的!到目前为止,我一直在使用ServiceTracker,谢谢!我会进一步调查菲利克斯的!到目前为止,我一直在使用ServiceTracker,谢谢!我会进一步调查菲利克斯的!到目前为止,我一直在使用ServiceTracker。