我们提供 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(){
@Override
public 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)" );//服务名称
来源:oschina
链接:https://my.oschina.net/u/138488/blog/263482