首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

bundle通讯-Event方式

2012-09-01 
bundle通信----Event方式针对事件的实现,OSGi中的 Event Admin 服务规范提供了基于发布 / 订阅模型(publis

bundle通信----Event方式

       针对事件的实现,OSGi中的 Event Admin 服务规范提供了基于发布 / 订阅模型(publish-subscribe model)这种方法,Event Admin 服务将事件从发布者(Publishers)转发到订阅者(Subscribers),从而实现bundle间的通信。具体流程如下图所示:

   bundle通讯-Event方式

     事件org.osgi.service.event.Event对象来表示,事件有两个要素:主题(Topic)和属性(Properties)。通过主题匹配,事件处理函数只需响应自己感兴趣的事件。

事件的发布有同步(postEvent())和异步(sendEvent())两种方式:前者要等到所有的事件订阅者都响应了该事件才返回, 而后者则是信息发布后直接返回。

下面直接以代码来说明


事件发布:

[stdout] send event![stdout] test event received--[stdout] handle event start--org.osgi.service.event.Event [topic=my_osgi_test_event][stdout] send event![stdout] test event received--[stdout] handle event start--org.osgi.service.event.Event [topic=my_osgi_test_event][stdout] send event![stdout] test event received--[stdout] handle event start--org.osgi.service.event.Event [topic=my_osgi_test_event

注:本次演示的OSGi是基于knopflerfish平台, 缺省状态下并没有包含事件相关的包,需要要额外下载并添加至工程中(本次版本为event_all-3.0.6.jar)。


热点排行