Package rx.observers

Class AsyncCompletableSubscriber

java.lang.Object
rx.observers.AsyncCompletableSubscriber
All Implemented Interfaces:
Completable.CompletableSubscriber, Subscription

@Experimental public abstract class AsyncCompletableSubscriber extends Object implements Completable.CompletableSubscriber, Subscription
An abstract base class for CompletableSubscriber implementations that want to expose an unsubscription capability.

Calling unsubscribe() and isUnsubscribed() is threadsafe and can happen at any time, even before or during an active Completable.subscribe(CompletableSubscriber) call.

Override the onStart() method to execute custom logic on the very first successful onSubscribe call.

If one wants to remain consistent regarding isUnsubscribed() and being terminated, the clear() method should be called from the implementing onError and onCompleted methods.


 public final class MyCompletableSubscriber extends AsyncCompletableSubscriber {
     @Override
     public void onStart() {
         System.out.println("Started!");
     }
     
     @Override
     public void onCompleted() {
         System.out.println("Completed!");
         clear();
     }
     
     @Override
     public void onError(Throwable e) {
         e.printStackTrace();
         clear();
     }
 }
 
Since:
(if this graduates from Experimental/Beta to supported, replace this parenthetical with the release number)
  • Field Details

  • Constructor Details

    • AsyncCompletableSubscriber

      public AsyncCompletableSubscriber()
  • Method Details

    • onSubscribe

      public final void onSubscribe(Subscription d)
      Description copied from interface: Completable.CompletableSubscriber
      Called once by the Completable to set a Subscription on this instance which then can be used to cancel the subscription at any time.
      Specified by:
      onSubscribe in interface Completable.CompletableSubscriber
      Parameters:
      d - the Subscription instance to call dispose on for cancellation, not null
    • onStart

      protected void onStart()
      Called before the first onSubscribe() call succeeds.
    • isUnsubscribed

      public final boolean isUnsubscribed()
      Description copied from interface: Subscription
      Indicates whether this Subscription is currently unsubscribed.
      Specified by:
      isUnsubscribed in interface Subscription
      Returns:
      true if this Subscription is currently unsubscribed, false otherwise
    • clear

      protected final void clear()
      Call to clear the upstream's subscription without unsubscribing it.
    • unsubscribe

      public final void unsubscribe()
      Description copied from interface: Subscription
      Stops the receipt of notifications on the Subscriber that was registered when this Subscription was received.

      This allows unregistering an Subscriber before it has finished receiving all events (i.e. before onCompleted is called).

      Specified by:
      unsubscribe in interface Subscription