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)" );//服務名稱
相關文章
相關標籤/搜索