RxJava



rx.subjects
Class BehaviorSubject<T>

java.lang.Object
  extended by rx.Observable<R>
      extended by rx.subjects.Subject<T,T>
          extended by rx.subjects.BehaviorSubject<T>
Type Parameters:
T -
All Implemented Interfaces:
Observer<T>

public class BehaviorSubject<T>
extends Subject<T,T>

Subject that publishes the most recent and all subsequent events to each subscribed Observer.

Example usage:

 / observer will receive all events.
  BehaviorSubject<Object> subject = BehaviorSubject.createWithDefaultValue("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.createWithDefaultValue("default");
  subject.onNext("zero");
  subject.onNext("one");
  subject.subscribe(observer);
  subject.onNext("two");
  subject.onNext("three");

   


Nested Class Summary
 
Nested classes/interfaces inherited from class rx.Observable
Observable.OnSubscribeFunc<T>
 
Constructor Summary
protected BehaviorSubject(java.util.concurrent.atomic.AtomicReference<T> currentValue, Observable.OnSubscribeFunc<T> onSubscribe, java.util.concurrent.ConcurrentHashMap<Subscription,Observer<? super T>> observers)
           
 
Method Summary
static
<T> BehaviorSubject<T>
createWithDefaultValue(T defaultValue)
          Creates a BehaviorSubject which publishes the last and all subsequent events to each Observer that subscribes to it.
 void onCompleted()
          Notifies the Observer that the Observable has finished sending push-based notifications.
 void onError(java.lang.Throwable e)
          Notifies the Observer that the Observable has experienced an error condition.
 void onNext(T args)
          Provides the Observer with new data.
 
Methods inherited from class rx.Observable
aggregate, aggregate, all, amb, amb, amb, amb, amb, amb, amb, amb, amb, average, averageDoubles, averageFloats, averageLongs, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, cache, cast, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, concat, concat, concat, concat, concat, concat, concat, concat, concat, contains, count, create, debounce, debounce, defaultIfEmpty, defer, dematerialize, distinct, distinct, distinctUntilChanged, distinctUntilChanged, doOnCompleted, doOnEach, doOnEach, doOnEach, doOnEach, doOnError, elementAt, elementAtOrDefault, empty, empty, error, error, exists, filter, finallyDo, first, first, firstOrDefault, firstOrDefault, flatMap, from, from, from, from, from, from, from, from, from, from, from, from, from, from, from, groupBy, groupBy, ignoreElements, interval, interval, isEmpty, just, just, last, map, mapMany, mapWithIndex, materialize, max, max, maxBy, maxBy, merge, merge, merge, merge, merge, merge, merge, merge, merge, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, min, min, minBy, minBy, multicast, never, observeOn, ofType, onErrorResumeNext, onErrorResumeNext, onErrorReturn, onExceptionResumeNext, parallel, parallel, publish, publishLast, range, reduce, reduce, replay, retry, retry, sample, sample, scan, scan, sequenceEqual, sequenceEqual, skip, skipLast, skipWhile, skipWhileWithIndex, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, sum, sumDoubles, sumFloats, sumLongs, switchDo, switchOnNext, synchronize, synchronize, synchronize, take, takeFirst, takeFirst, takeLast, takeUntil, takeWhile, takeWhileWithIndex, throttleFirst, throttleFirst, throttleLast, throttleLast, throttleWithTimeout, throttleWithTimeout, timeInterval, timeInterval, timeout, timeout, timeout, timeout, timestamp, toBlockingObservable, toList, toSortedList, toSortedList, using, where, window, window, window, window, window, window, window, window, window, window, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BehaviorSubject

protected BehaviorSubject(java.util.concurrent.atomic.AtomicReference<T> currentValue,
                          Observable.OnSubscribeFunc<T> onSubscribe,
                          java.util.concurrent.ConcurrentHashMap<Subscription,Observer<? super T>> observers)
Method Detail

createWithDefaultValue

public static <T> BehaviorSubject<T> createWithDefaultValue(T defaultValue)
Creates a BehaviorSubject which publishes the last and all subsequent events to each Observer that subscribes to it.

Parameters:
defaultValue - The value which will be published to any Observer as long as the BehaviorSubject has not yet received any events.
Returns:
the constructed BehaviorSubject.

onCompleted

public void onCompleted()
Description copied from interface: Observer
Notifies the Observer that the Observable has finished sending push-based notifications.

The Observable will not call this closure if it calls onError.


onError

public void onError(java.lang.Throwable e)
Description copied from interface: Observer
Notifies the Observer that the Observable has experienced an error condition.

If the Observable calls this closure, it will not thereafter call onNext or onCompleted.


onNext

public void onNext(T args)
Description copied from interface: Observer
Provides the Observer with new data.

The Observable calls this closure 1 or more times, unless it calls onError in which case this closure may never be called.

The Observable will not call this closure again after it calls either onCompleted or onError.