这是我获得OSGi服务的方式:
ServiceReference reference = bundleContext.getServiceReference(Foo.class.getName());
Foo foo=(Foo) bundleContext.getService(reference);
如果我在完成服务后没有bunldeContext.ungetSerivice(reference)
,会发生什么:
答案 0 :(得分:1)
OSGi框架维护捆绑包的每个服务的使用计数。如果您的捆绑包没有取消该服务,则当捆绑包停止或服务未注册时,它将由框架自动释放。
您正在使用Declarative Services,SCR将在引用该服务的组件的生命周期中的适当时间处理unget调用。