@Override public void run() { AsyncSubject<Integer> s = AsyncSubject.create(); s.subscribe(new Action1<Integer>() { @Override public void call(Integer integer) { log("" + integer); } }); s.onNext(0); s.onNext(1); s.onNext(2); s.onCompleted(); } });
@OnClick(R.id.async_subject_test_error) public void onAsyncSubjectTestWithErrorClick() { unsubscribe(); createSubscription(); AsyncSubject<Stock> stockAsyncSubject = AsyncSubject.create(); stockAsyncSubject.onNext(new Stock(GOOG, 722)); // Will get the last value (GOOG, 723) and all future items and terminal events Subscription subscription = stockAsyncSubject.subscribe(getDefaultSubscriber()); compositeSubscription.add(subscription); stockAsyncSubject.onNext(new Stock(GOOG, 723)); stockAsyncSubject.onNext(new Stock(GOOG, 100)); stockAsyncSubject.onNext(new Stock(GOOG, 699)); stockAsyncSubject.onError(new Exception("Boom!")); // current and future subscribers will only receive this, with NO items emitted. Subscription tardySubscription = stockAsyncSubject.subscribe(getTardySubscriber()); compositeSubscription.add(tardySubscription); }
@OnClick(R.id.async_subject_test) public void onAsyncSubjectTestClick() { unsubscribe(); createSubscription(); AsyncSubject<Stock> stockAsyncSubject = AsyncSubject.create(); stockAsyncSubject.onNext(new Stock(GOOG, 722)); // Will get the last value (GOOG, 723) and all future items and terminal events Subscription subscription = stockAsyncSubject.subscribe(getDefaultSubscriber()); compositeSubscription.add(subscription); stockAsyncSubject.onNext(new Stock(GOOG, 723)); stockAsyncSubject.onNext(new Stock(GOOG, 100)); stockAsyncSubject.onNext(new Stock(GOOG, 699)); stockAsyncSubject.onCompleted(); Subscription tardySubscription = stockAsyncSubject.subscribe(getTardySubscriber()); compositeSubscription.add(tardySubscription); }