Interface CompletableObserver

All Known Implementing Classes:
BlockingDisposableMultiObserver, BlockingMultiObserver, CallbackCompletableObserver, CompletableAmb.Amb, CompletableAndThenCompletable.NextObserver, CompletableAndThenCompletable.SourceObserver, CompletableAndThenObservable.AndThenObservableObserver, CompletableAndThenPublisher.AndThenPublisherSubscriber, CompletableCache, CompletableConcat.CompletableConcatSubscriber.ConcatInnerObserver, CompletableConcatArray.ConcatInnerObserver, CompletableConcatIterable.ConcatInnerObserver, CompletableDelay.Delay, CompletableDetach.DetachCompletableObserver, CompletableDisposeOn.DisposeOnObserver, CompletableDoFinally.DoFinallyObserver, CompletableDoOnEvent.DoOnEvent, CompletableHide.HideCompletableObserver, CompletableMerge.CompletableMergeSubscriber.MergeInnerObserver, CompletableMergeArray.InnerCompletableObserver, CompletableMergeArrayDelayError.MergeInnerCompletableObserver, CompletableMergeIterable.MergeCompletableObserver, CompletableObserveOn.ObserveOnCompletableObserver, CompletableOnErrorComplete.OnError, CompletableOnErrorReturn.OnErrorReturnMaybeObserver, CompletablePeek.CompletableObserverImplementation, CompletableResumeNext.ResumeNextObserver, CompletableSubject, CompletableSubscribeOn.SubscribeOnObserver, CompletableTakeUntilCompletable.TakeUntilMainObserver, CompletableTakeUntilCompletable.TakeUntilMainObserver.OtherObserver, CompletableTimeout.DisposeTask.DisposeObserver, CompletableTimeout.TimeOutObserver, CompletableToSingle.ToSingle, CompletableUsing.UsingObserver, CompletionStageConsumer, DisposableAutoReleaseMultiObserver, DisposableCompletableObserver, EmptyCompletableObserver, EmptyComponent, FlowableConcatMapCompletable.ConcatMapCompletableObserver.ConcatMapInnerObserver, FlowableConcatWithCompletable.ConcatWithSubscriber, FlowableFlatMapCompletable.FlatMapCompletableMainSubscriber.InnerConsumer, FlowableFlatMapCompletableCompletable.FlatMapCompletableMainSubscriber.InnerObserver, FlowableFromCompletable.FromCompletableObserver, FlowableMergeWithCompletable.MergeWithSubscriber.OtherObserver, FlowableSwitchMapCompletable.SwitchMapCompletableObserver.SwitchMapInnerObserver, FutureMultiObserver, MaterializeSingleObserver, MaybeDelayWithCompletable.OtherObserver, MaybeFlatMapCompletable.FlatMapCompletableObserver, MaybeFromCompletable.FromCompletableObserver, ObservableConcatMapCompletable.ConcatMapCompletableObserver.ConcatMapInnerObserver, ObservableConcatWithCompletable.ConcatWithObserver, ObservableFlatMapCompletable.FlatMapCompletableMainObserver.InnerObserver, ObservableFlatMapCompletableCompletable.FlatMapCompletableMainObserver.InnerObserver, ObservableFromCompletable.FromCompletableObserver, ObservableMergeWithCompletable.MergeWithObserver.OtherObserver, ObservableSwitchMapCompletable.SwitchMapCompletableObserver.SwitchMapInnerObserver, ResourceCompletableObserver, SafeCompletableObserver, SingleDelayWithCompletable.OtherObserver, SingleFlatMapCompletable.FlatMapCompletableObserver, TestObserver

public interface CompletableObserver
Provides a mechanism for receiving push-based notification of a valueless completion or an error.

When a CompletableObserver is subscribed to a CompletableSource through the CompletableSource.subscribe(CompletableObserver) method, the CompletableSource calls onSubscribe(Disposable) with a Disposable that allows disposing the sequence at any time. A well-behaved CompletableSource will call a CompletableObserver's onError(Throwable) or onComplete() method exactly once as they are considered mutually exclusive terminal signals.

Calling the CompletableObserver's method must happen in a serialized fashion, that is, they must not be invoked concurrently by multiple threads in an overlapping fashion and the invocation pattern must adhere to the following protocol:

    onSubscribe (onError | onComplete)?

Subscribing a CompletableObserver to multiple CompletableSources is not recommended. If such reuse happens, it is the duty of the CompletableObserver implementation to be ready to receive multiple calls to its methods and ensure proper concurrent behavior of its business logic.

Calling onSubscribe(Disposable) or onError(Throwable) with a null argument is forbidden.

The implementations of the onXXX methods should avoid throwing runtime exceptions other than the following cases:

  • If the argument is null, the methods can throw a NullPointerException. Note though that RxJava prevents nulls to enter into the flow and thus there is generally no need to check for nulls in flows assembled from standard sources and intermediate operators.
  • If there is a fatal error (such as VirtualMachineError).
Since:
2.0
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Called once the deferred computation completes normally.
    void
    Called once if the deferred computation 'throws' an exception.
    void
    Called once by the Completable to set a Disposable on this instance which then can be used to cancel the subscription at any time.
  • Method Details

    • onSubscribe

      void onSubscribe(@NonNull @NonNull Disposable d)
      Called once by the Completable to set a Disposable on this instance which then can be used to cancel the subscription at any time.
      Parameters:
      d - the Disposable instance to call dispose on for cancellation, not null
    • onComplete

      void onComplete()
      Called once the deferred computation completes normally.
    • onError

      void onError(@NonNull @NonNull Throwable e)
      Called once if the deferred computation 'throws' an exception.
      Parameters:
      e - the exception, not null.