T
- the value typepublic abstract class DefaultObserver<T> extends java.lang.Object implements Observer<T>
Observer
with support for cancelling a
subscription via cancel()
(synchronously) and calls onStart()
when the subscription happens.
All pre-implemented final methods are thread-safe.
Use the protected cancel()
to dispose the sequence from within an
onNext
implementation.
Like all other consumers, DefaultObserver
can be subscribed only once.
Any subsequent attempt to subscribe it to a new source will yield an
IllegalStateException
with message "Disposable already set!"
.
Implementation of onStart()
, Observer.onNext(Object)
, Observer.onError(Throwable)
and Observer.onComplete()
are not allowed to throw any unchecked exceptions.
If for some reason this can't be avoided, use Observable.safeSubscribe(io.reactivex.Observer)
instead of the standard subscribe()
method.
Example
Disposable d =
Observable.range(1, 5)
.subscribeWith(new DefaultObserver<Integer>() {
@Override public void onStart() {
System.out.println("Start!");
}
@Override public void onNext(Integer t) {
if (t == 3) {
cancel();
}
System.out.println(t);
}
@Override public void onError(Throwable t) {
t.printStackTrace();
}
@Override public void onComplete() {
System.out.println("Done!");
}
});
// ...
d.dispose();
Constructor and Description |
---|
DefaultObserver() |
Modifier and Type | Method and Description |
---|---|
protected void |
cancel()
Cancels the upstream's disposable.
|
protected void |
onStart()
Called once the subscription has been set on this observer; override this
to perform initialization.
|
void |
onSubscribe(Disposable s)
Provides the Observer with the means of cancelling (disposing) the
connection (channel) with the Observable in both
synchronous (from within
Observer.onNext(Object) ) and asynchronous manner. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onComplete, onError, onNext
public final void onSubscribe(Disposable s)
Observer
Observer.onNext(Object)
) and asynchronous manner.onSubscribe
in interface Observer<T>
s
- the Disposable instance whose Disposable.dispose()
can
be called anytime to cancel the connectionprotected final void cancel()
protected void onStart()