android插件化-apkplug中以监听方式获取OSGI服务-09

咱们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService java

一 需求 git

    经过 <<apkplug中OSGI服务基本原理-08>>咱们知道怎样注册于查询OSGI Service。但查询方式必须在Service启动之后才能使用,而有时咱们并不知道Service什么时候启动,而只须要在Service启动之后能当即获取到并使用。OSGI提供监听器的形式动态监听指定Service的注册于注销过程。 ide

二 OSGI Service 监听代码 post

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)" );//服务名称
相关文章
相关标签/搜索