T
- the type of item the MaybeObserver expects to observepublic interface MaybeObserver<T>
When a MaybeObserver
is subscribed to a MaybeSource
through the MaybeSource.subscribe(MaybeObserver)
method,
the MaybeSource
calls onSubscribe(Disposable)
with a Disposable
that allows
disposing the sequence at any time. A well-behaved
MaybeSource
will call a MaybeObserver
's onSuccess(Object)
, onError(Throwable)
or onComplete()
method exactly once as they are considered mutually exclusive terminal signals.
Calling the MaybeObserver
'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 (onSuccess | onError | onComplete)?
Note that unlike with the Observable
protocol, onComplete()
is not called after the success item has been
signalled via onSuccess(Object)
.
Subscribing a MaybeObserver
to multiple MaybeSource
s is not recommended. If such reuse
happens, it is the duty of the MaybeObserver
implementation to be ready to receive multiple calls to
its methods and ensure proper concurrent behavior of its business logic.
Calling onSubscribe(Disposable)
, onSuccess(Object)
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:
null
, the methods can throw a NullPointerException
.
Note though that RxJava prevents null
s 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.
VirtualMachineError
).Modifier and Type | Method and Description |
---|---|
void |
onComplete()
Called once the deferred computation completes normally.
|
void |
onError(@NonNull Throwable e)
Notifies the
MaybeObserver that the Maybe has experienced an error condition. |
void |
onSubscribe(@NonNull Disposable d)
Provides the
MaybeObserver with the means of cancelling (disposing) the
connection (channel) with the Maybe in both
synchronous (from within onSubscribe(Disposable) itself) and asynchronous manner. |
void |
onSuccess(T t)
Notifies the
MaybeObserver with one item and that the Maybe has finished sending
push-based notifications. |
void onSubscribe(@NonNull @NonNull Disposable d)
MaybeObserver
with the means of cancelling (disposing) the
connection (channel) with the Maybe
in both
synchronous (from within onSubscribe(Disposable)
itself) and asynchronous manner.d
- the Disposable
instance whose Disposable.dispose()
can
be called anytime to cancel the connectionvoid onSuccess(@NonNull T t)
MaybeObserver
with one item and that the Maybe
has finished sending
push-based notifications.
The Maybe
will not call this method if it calls onError(java.lang.Throwable)
.
t
- the item emitted by the Maybe
void onError(@NonNull @NonNull Throwable e)
MaybeObserver
that the Maybe
has experienced an error condition.
If the Maybe
calls this method, it will not thereafter call onSuccess(T)
.
e
- the exception encountered by the Maybe
void onComplete()