2019独角兽企业重金招聘Python工程师标准>>>
我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService
一 需求
通过 <<apkplug中OSGI服务基本原理-08>>我们知道怎样注册于查询OSGI Service。但查询方式必须在Service启动以后才能使用,而有时我们并不知道Service何时启动,而只需要在Service启动以后能立即获取到并使用。OSGI提供监听器的形式动态监听指定Service的注册于注销过程。
二 OSGI Service 监听代码
private ServiceReference ref=null;
private printLog service=null;
context.addServiceListener(new ServiceListener(){@Overridepublic void serviceChanged(ServiceEvent event) {switch (event.getType()) {case ServiceEvent.REGISTERED://服务注册if (ref == null ) {ref = event.getServiceReference();service = (printLog) context.getService(ref);//保存实例以备后续访问}break ;case ServiceEvent.UNREGISTERING://服务注销if (ref == event.getServiceReference()) {context.ungetService(ref); //释放实例 service = null ;ref = null ;}break ;}}
},"(objectclass=com.apkplug.osgi.service.printLog)" );//服务名称