咱們提供 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)" );//服務名稱