常用的OSGI包

来源:互联网 发布:网络诈骗2000判刑多久 编辑:程序博客网 时间:2024/05/21 13:56

在讲解之前,我们应该明白如何学习这些osgi包。
官网上讲得很详细。附网址:https://osgi.org/javadoc/r4v43/core/index.html
在这里,只讲一些笔者觉得相对重要的。在工程中经常会出现下面四个osgi包
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceListener;
import org.osgi.framework.ServiceEvent;

一、org.osgi.framework.BundleActivator;
定制bundle的启动和停止
有两个方法:
void start(BundleContext context)
当这个bundle启动时框架会调用start()方法
void stop(BundleContext context)
当bundle停止时,框架会调用stop()方法

二、org.osgi.framework.BundleContext;
BundleContext是一个OSGi框架传递给我们的Bundle的一个魔力入场券。当代码需要在任何时候与框架交互时,你将用到BundleContext。
事实上这是用OSGi API交互的唯一方法,并且框架在Bundle启动的时候将这些入场券发通过它们的BundleActivator发给每一个Bundle。

当 Bundle 启动的时候, OSGi 框架就创建这个 Bundle 的 BundleContext 对象, 直到 Bundle 停止运行从OSGi 容器卸载为止。当bundle激活时,BundleContext 对象被传递给
BundleActivator.start(BundleContext) ,当bundle停止时,BundleContext 对象被传递给
BundleActivator.stop(BundleContext) 。

有几个经常用到的方法:
BundleContext.registerService():在 OSGi 容器中注册服务
BundleContext.getService() :从当前 OSGi 容器中获取已有的服务
BundleContext.addBundleListener():在 OSGi 容器中注册事件监听器
BundleContext.getProperty():获取 Bundle 所处环境的环境属性
getServiceReferences():获取服务的引用
registerService():注册服务
addServiceListener():增加服务监听者

每个 Bundle 的 BundleContext 对象都是在调用 Bundle.start() 方法时由 OSGi 框架创建并以方法参数的形式传入到 Bundle 中, 实现 Bundle 时一般会把这个对象的引用保留起来, 以便在 Bundle 其他代码中使用。

三、org.osgi.framework.ServiceListener
是一个监听接口
有一个方法:
void serviceChanged(ServiceEvent event)

四、org.osgi.framework.ServiceEvent
其中ServiceEvent有四种值,分别为
MODIFIED :当注册的服务被改动时
MODIFIED_ENDMATCH :注册服务的属性已经修改,新的属性不再匹配侦听器的过滤器
REGISTERED :当服务被注册时
UNREGISTERING :当服务被卸载
有两个方法:
getServiceReference():返回一个服务的引用
getType():返回时间的类型

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6岁了不会写字怎么办 宝宝1岁不爱吃饭怎么办 l岁宝宝不吃饭怎么办 1岁宝宝不肯吃饭怎么办 10岁儿童不吃饭怎么办 2周岁宝宝不吃饭怎么办 9个月小孩不吃饭怎么办 孩子被老师打了怎么办 孩子说老师打她怎么办 孩子的数学太差怎么办 2岁宝宝老要喝水怎么办 分手了还想她怎么办 5岁宝宝不会说话怎么办 2岁半宝宝说话晚怎么办 7岁儿童发烧39度怎么办 感冒发烧怎么办简单的退烧方法 生完孩子没奶水怎么办 梦见让狐狸咬了怎么办 1岁宝宝不吃辅食怎么办 母乳不够宝宝不吃奶粉怎么办 吃母乳的宝宝不吃奶粉怎么办 宝宝吃母乳不吃奶粉怎么办 1岁婴儿不吃辅食怎么办 不喝奶瓶的宝宝怎么办 母乳不足宝宝不吃奶粉怎么办 4岁宝宝注意力不集中怎么办 孩子上课不专心听讲怎么办 小孩上课不认真听讲怎么办 一年级孩子上课不认真听讲怎么办 打了孩子很自责怎么办 4岁宝宝讲话结巴怎么办 网销客户不说话怎么办 两岁宝宝不说话怎么办? 4岁儿童说话结巴怎么办 3岁宝宝说话结巴怎么办 6岁儿童舌头短怎么办 5岁宝宝说话结巴怎么办 两岁宝宝说话晚怎么办 6岁儿童说话结巴怎么办 2岁宝宝呕吐拉稀怎么办 2岁宝宝突然呕吐怎么办