The methods in this interface may be called as the result of a {@code ServiceEvent} being received by a {@code ServiceTracker}. Since {@code ServiceEvent}s are synchronously delivered by the Framework, it is highly recommended that implementations of these methods do not register ( {@code BundleContext.registerService}), modify ( {@code ServiceRegistration.setProperties}) or unregister ( {@code ServiceRegistration.unregister}) a service while being synchronized on any object.
The {@code ServiceTracker} class is thread-safe. It does not call a{@code ServiceTrackerCustomizer} while holding any locks.{@code ServiceTrackerCustomizer} implementations must also be thread-safe. @param < S> The type of the service being tracked. @param < T> The type of the tracked object. @ThreadSafe @author $Id: 0c3333455f7d80a7793c77ac9671baa4a02a89b9 $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|