Class DisposableObserver<T>

java.lang.Object
io.reactivex.rxjava3.observers.DisposableObserver<T>
Type Parameters:
T - the received value type
All Implemented Interfaces:
Observer<T>, Disposable
Direct Known Subclasses:
BlockingObservableLatest.BlockingObservableLatestIterator, BlockingObservableNext.NextObserver, ObservableBufferExactBoundary.BufferBoundaryObserver, ObservableDebounce.DebounceObserver.DebounceInnerObserver, ObservableWindowBoundary.WindowBoundaryInnerObserver

public abstract class DisposableObserver<T> extends Object implements Observer<T>, Disposable
An abstract Observer that allows asynchronous cancellation by implementing Disposable.

All pre-implemented final methods are thread-safe.

Use the public dispose() method to dispose the sequence from within an onNext implementation.

Like all other consumers, DisposableObserver can be subscribed only once. Any subsequent attempt to subscribe it to a new source will yield an IllegalStateException with message "It is not allowed to subscribe with a(n) <class name> multiple times.".

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.rxjava3.core.Observer) instead of the standard subscribe() method.

Example


 Disposable d =
     Observable.range(1, 5)
     .subscribeWith(new DisposableObserver<Integer>() {
         @Override public void onStart() {
             System.out.println("Start!");
         }
         @Override public void onNext(Integer t) {
             if (t == 3) {
                 dispose();
             }
             System.out.println(t);
         }
         @Override public void onError(Throwable t) {
             t.printStackTrace();
         }
         @Override public void onComplete() {
             System.out.println("Done!");
         }
     });
 // ...
 d.dispose();
 
  • Field Details

  • Constructor Details

    • DisposableObserver

      public DisposableObserver()
  • Method Details

    • onSubscribe

      public final void onSubscribe(@NonNull @NonNull Disposable d)
      Description copied from interface: Observer
      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.
      Specified by:
      onSubscribe in interface Observer<T>
      Parameters:
      d - the Disposable instance whose Disposable.dispose() can be called anytime to cancel the connection
    • onStart

      protected void onStart()
      Called once the single upstream Disposable is set via onSubscribe.
    • isDisposed

      public final boolean isDisposed()
      Description copied from interface: Disposable
      Returns true if this resource has been disposed.
      Specified by:
      isDisposed in interface Disposable
      Returns:
      true if this resource has been disposed
    • dispose

      public final void dispose()
      Description copied from interface: Disposable
      Dispose the resource, the operation should be idempotent.
      Specified by:
      dispose in interface Disposable