T
- the type of item the SingleObserver expects to observepublic interface SingleObserver<T>
When a SingleObserver
is subscribed to a SingleSource
through the SingleSource.subscribe(SingleObserver)
method,
the SingleSource
calls onSubscribe(Disposable)
with a Disposable
that allows
disposing the sequence at any time. A well-behaved
SingleSource
will call a SingleObserver
's onSuccess(Object)
method exactly once or the SingleObserver
's
onError(java.lang.Throwable)
method exactly once as they are considered mutually exclusive terminal signals.
Calling the SingleObserver
'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)?
Subscribing a SingleObserver
to multiple SingleSource
s is not recommended. If such reuse
happens, it is the duty of the SingleObserver
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 |
onError(Throwable e)
Notifies the SingleObserver that the
Single has experienced an error condition. |
void |
onSubscribe(Disposable d)
Provides the SingleObserver with the means of cancelling (disposing) the
connection (channel) with the Single in both
synchronous (from within
onSubscribe(Disposable) itself) and asynchronous manner. |
void |
onSuccess(T t)
Notifies the SingleObserver with a single item and that the
Single has finished sending
push-based notifications. |
void onSubscribe(@NonNull Disposable d)
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)
Single
has finished sending
push-based notifications.
The Single
will not call this method if it calls onError(java.lang.Throwable)
.
t
- the item emitted by the Singlevoid onError(@NonNull Throwable e)
Single
has experienced an error condition.
If the Single
calls this method, it will not thereafter call onSuccess(T)
.
e
- the exception encountered by the Single