Class BehaviorSubject<T>
- Type Parameters:
T- the type of item expected to be observed by the Subject
- All Implemented Interfaces:
Observer<T>
Observer.
Example usage:
// observer will receive all events.
BehaviorSubject<Object> subject = BehaviorSubject.create("default");
subject.subscribe(observer);
subject.onNext("one");
subject.onNext("two");
subject.onNext("three");
// observer will receive the "one", "two" and "three" events, but not "zero"
BehaviorSubject<Object> subject = BehaviorSubject.create("default");
subject.onNext("zero");
subject.onNext("one");
subject.subscribe(observer);
subject.onNext("two");
subject.onNext("three");
// observer will receive only onCompleted
BehaviorSubject<Object> subject = BehaviorSubject.create("default");
subject.onNext("zero");
subject.onNext("one");
subject.onCompleted();
subject.subscribe(observer);
// observer will receive only onError
BehaviorSubject<Object> subject = BehaviorSubject.create("default");
subject.onNext("zero");
subject.onNext("one");
subject.onError(new RuntimeException("error"));
subject.subscribe(observer);
-
Nested Class Summary
Nested classes/interfaces inherited from class rx.Observable
Observable.OnSubscribe<T>, Observable.Operator<R,T>, Observable.Transformer<T, R> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Object[]An empty array to trigger getValues() to return a new array.private final NotificationLite<T> private final SubjectSubscriptionManager<T> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBehaviorSubject(Observable.OnSubscribe<T> onSubscribe, SubjectSubscriptionManager<T> state) -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> BehaviorSubject<T> create()Creates aBehaviorSubjectwithout a default item.static <T> BehaviorSubject<T> create(T defaultValue) Creates aBehaviorSubjectthat emits the last item it observed and all subsequent items to eachObserverthat subscribes to it.private static <T> BehaviorSubject<T> create(T defaultValue, boolean hasDefault) Returns the Throwable that terminated the Subject.getValue()Returns the current value of the Subject if there is such a value and the subject hasn't terminated yet.Object[]Returns a snapshot of the currently buffered non-terminal events.T[]Returns a snapshot of the currently buffered non-terminal events into the providedaarray or creates a new array if it has not enough capacity.booleanCheck if the Subject has terminated normally.booleanbooleanCheck if the Subject has terminated with an exception.booleanhasValue()Check if the Subject has a value.voidNotifies the Observer that theObservablehas finished sending push-based notifications.voidNotifies the Observer that theObservablehas experienced an error condition.voidProvides the Observer with a new item to observe.(package private) intMethods inherited from class rx.subjects.Subject
toSerializedMethods inherited from class rx.Observable
all, amb, amb, amb, amb, amb, amb, amb, amb, amb, ambWith, asObservable, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, cache, cache, cacheWithInitialCapacity, cast, collect, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatestDelayError, compose, concat, concat, concat, concat, concat, concat, concat, concat, concat, concatDelayError, concatDelayError, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatMap, concatMapDelayError, concatMapEager, concatMapEager, concatMapEager, concatMapIterable, concatWith, contains, count, countLong, create, create, create, debounce, debounce, debounce, defaultIfEmpty, defer, delay, delay, delay, delay, delaySubscription, delaySubscription, delaySubscription, delaySubscription, dematerialize, distinct, distinct, distinctUntilChanged, distinctUntilChanged, distinctUntilChanged, doAfterTerminate, doOnCompleted, doOnEach, doOnEach, doOnError, doOnNext, doOnRequest, doOnSubscribe, doOnTerminate, doOnUnsubscribe, elementAt, elementAtOrDefault, empty, error, exists, extend, filter, finallyDo, first, first, firstOrDefault, firstOrDefault, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMapIterable, flatMapIterable, flatMapIterable, flatMapIterable, forEach, forEach, forEach, from, from, from, from, from, fromAsync, fromCallable, groupBy, groupBy, groupBy, groupJoin, ignoreElements, interval, interval, interval, interval, isEmpty, join, just, just, just, just, just, just, just, just, just, just, last, last, lastOrDefault, lastOrDefault, lift, limit, map, materialize, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeWith, nest, never, observeOn, observeOn, observeOn, observeOn, ofType, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureDrop, onBackpressureDrop, onBackpressureLatest, onErrorResumeNext, onErrorResumeNext, onErrorReturn, onExceptionResumeNext, onTerminateDetach, publish, publish, range, range, rebatchRequests, reduce, reduce, repeat, repeat, repeat, repeat, repeatWhen, repeatWhen, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, retry, retry, retry, retryWhen, retryWhen, sample, sample, sample, scan, scan, sequenceEqual, sequenceEqual, serialize, share, single, single, singleOrDefault, singleOrDefault, skip, skip, skip, skipLast, skipLast, skipLast, skipUntil, skipWhile, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, switchIfEmpty, switchMap, switchMapDelayError, switchOnNext, switchOnNextDelayError, take, take, take, takeFirst, takeLast, takeLast, takeLast, takeLast, takeLast, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeUntil, takeUntil, takeWhile, throttleFirst, throttleFirst, throttleLast, throttleLast, throttleWithTimeout, throttleWithTimeout, timeInterval, timeInterval, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timer, timer, timer, timer, timestamp, timestamp, toBlocking, toCompletable, toList, toMap, toMap, toMap, toMultimap, toMultimap, toMultimap, toMultimap, toSingle, toSortedList, toSortedList, toSortedList, toSortedList, unsafeSubscribe, unsubscribeOn, using, using, window, window, window, window, window, window, window, window, window, window, window, window, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipWith, zipWith
-
Field Details
-
EMPTY_ARRAY
An empty array to trigger getValues() to return a new array. -
state
-
nl
-
-
Constructor Details
-
BehaviorSubject
protected BehaviorSubject(Observable.OnSubscribe<T> onSubscribe, SubjectSubscriptionManager<T> state)
-
-
Method Details
-
create
Creates aBehaviorSubjectwithout a default item.- Type Parameters:
T- the type of item the Subject will emit- Returns:
- the constructed
BehaviorSubject
-
create
Creates aBehaviorSubjectthat emits the last item it observed and all subsequent items to eachObserverthat subscribes to it.- Type Parameters:
T- the type of item the Subject will emit- Parameters:
defaultValue- the item that will be emitted first to anyObserveras long as theBehaviorSubjecthas not yet observed any items from its sourceObservable- Returns:
- the constructed
BehaviorSubject
-
create
-
onCompleted
public void onCompleted()Description copied from interface:ObserverNotifies the Observer that theObservablehas finished sending push-based notifications.The
Observablewill not call this method if it callsObserver.onError(java.lang.Throwable). -
onError
Description copied from interface:ObserverNotifies the Observer that theObservablehas experienced an error condition.If the
Observablecalls this method, it will not thereafter callObserver.onNext(T)orObserver.onCompleted().- Parameters:
e- the exception encountered by the Observable
-
onNext
Description copied from interface:ObserverProvides the Observer with a new item to observe.The
Observablemay call this method 0 or more times.The
Observablewill not call this method again after it calls eitherObserver.onCompleted()orObserver.onError(java.lang.Throwable).- Parameters:
v- the item emitted by the Observable
-
subscriberCount
int subscriberCount() -
hasObservers
public boolean hasObservers()Description copied from class:Subject- Specified by:
hasObserversin classSubject<T,T> - Returns:
- true if there is at least one Observer subscribed to this Subject, false otherwise
-
hasValue
Check if the Subject has a value.Use the
getValue()method to retrieve such a value.Note that unless
hasCompleted()orhasThrowable()returns true, the value retrieved bygetValue()may get outdated.- Returns:
- true if and only if the subject has some value and hasn't terminated yet.
-
hasThrowable
Check if the Subject has terminated with an exception.- Returns:
- true if the subject has received a throwable through
onError.
-
hasCompleted
Check if the Subject has terminated normally.- Returns:
- true if the subject completed normally via
onCompleted()
-
getValue
Returns the current value of the Subject if there is such a value and the subject hasn't terminated yet.The method can return
nullfor various reasons. UsehasValue(),hasThrowable()andhasCompleted()to determine if suchnullis a valid value, there was an exception or the Subject terminated (with or without receiving any value).- Returns:
- the current value or
nullif the Subject doesn't have a value, has terminated or has an actualnullas a valid value.
-
getThrowable
Returns the Throwable that terminated the Subject.- Returns:
- the Throwable that terminated the Subject or
nullif the subject hasn't terminated yet or it terminated normally.
-
getValues
Returns a snapshot of the currently buffered non-terminal events into the providedaarray or creates a new array if it has not enough capacity.- Parameters:
a- the array to fill in- Returns:
- the array
aif it had enough capacity or a new array containing the available values
-
getValues
Returns a snapshot of the currently buffered non-terminal events.The operation is threadsafe.
- Returns:
- a snapshot of the currently buffered non-terminal events.
- Since:
- (If this graduates from being an Experimental class method, replace this parenthetical with the release number)
-