我们提供 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)" ); |