首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有必要删除OSGi中的服务引用?

是否有必要删除OSGi中的服务引用?
EN

Stack Overflow用户
提问于 2016-01-28 15:37:57
回答 1查看 309关注 0票数 0

我使用的是OSGi框架Knopflerfish,既然我现在可以通过注册服务来调用包来做一些事情,我需要删除服务吗?

因为我找不到任何方法来删除该服务。通过检查BundleContext中长度为"getAllService()“和ServiceTracker.getServices()的服务,我可以看到服务的总数正在增加,甚至我调用了"ungetService(ServiceReference)”。

那么,是否有必要删除该服务,或者"ungetService“就足够了?如果有必要,如何删除该服务?

EN

回答 1

Stack Overflow用户

发布于 2016-01-28 17:46:41

ungetService不是registerService的对立面,它是getService的对立面,也就是消费者进行的调用。

如果使用registerService方法注册服务,它将返回一个ServiceRegistration对象。当您不再希望您的服务对使用者可用时,您应该对该对象调用unregister方法。请注意,如果您的捆绑包停止,它注册的任何服务都将自动注销。

但是,我想知道您是否真的应该深入研究最低级别的OSGi API。对于99%的用例,您应该使用更高级别的框架,如声明性服务。这将为您省去很多痛苦,还会使您的代码更可靠、更具可读性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35055405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档