我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService
一 需求
通过 <<apkplug中OSGI服务基本原理-08>>我们知道怎样注册于查询OSGI Service。但查询方式必须在Service启动以后才能使用,而有时我们并不知道Service何时启动,而只需要在Service启动以后能立即获取到并使用。OSGI提供监听器的形式动态监听指定Service的注册于注销过程。
二 OSGI Service 监听代码
01 |
private ServiceReference
ref= null ; |
02 |
private printLog
service= null ; |
03 |
context.addServiceListener( |
04 |
new ServiceListener(){ |
06 |
public void serviceChanged(ServiceEvent
event) { |
07 |
switch (event.getType())
{ |
08 |
case ServiceEvent.REGISTERED: |
11 |
ref
= event.getServiceReference(); |
12 |
service
= (printLog) context.getService(ref); |
15 |
case ServiceEvent.UNREGISTERING: |
17 |
if (ref
== event.getServiceReference()) { |
18 |
context.ungetService(ref); |
25 |
}, "(objectclass=com.apkplug.osgi.service.printLog)" ); |