ServiceTrackCustomer是由OSGi提供的一个用于监控服务的接口类,当在OSGi里面注册,修改,反注册一个Service的时候,OSGi会调用ServiceTrackCustomer的方法addingService, modifiedService, removedService.下面的代码演示了如何来用ServiceTrackCustomer
public class MyExtensionFactoryTrack implements ServiceTrackerCustomizer {
public Object addingService(ServiceReference sf) {
System.out.println("--Enter MyExtensionFactoryTrack.addingService()");
Bundle[] bundles = sf.getUsingBundles();
for (int i = 0; i < bundles.length; i++) {
String symbolicName = bundles[i].getSymbolicName();
System.out.println("--symbolicName is "+symbolicName);
}
return null;
}
public void modifiedService(ServiceReference sf, Object obj) {
System.out.println("--Enter MyExtensionFactoryTrack.modifiedService()");
}
public void removedService(ServiceReference sf, Object obj) {
System.out.println("--Enter MyExtensionFactoryTrack.removedService()");
}
}