我自己的Rxjava學習
都在說Rxjava好用,就學一下
- 創建被觀察者
調用被觀察者的onCreat方法,並傳入ObservableOnSubscribe類 重寫subscribe方法
Observable<String> story = Observable.create(new ObservableOnSubscribe<String>() {
@Override public void subscribe(ObservableEmitter<String> emitter) throws Exception { for (int i=1;i<4;i++){ Log.d("TAG","我是小說,我更新了第"+i+"季"); emitter.onNext(i+""); } } });
- 創建觀察者
直接用new創建,並重寫觀察者的四個方法
Observer<String> reader = new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
Log.d("TAG","我是讀者,我和小說訂閱了");
}
@Override
public void onNext(String value) {
Log.d("TAG","我是讀者,我拿到了小說的新版本:"+value+"版本");
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
Log.d("TAG","我是讀者,小說的新版本被我拿完了");
}
};
onSubscribe在觀察者訂閱被觀察者的時候被調用
onNext對被觀察者發出的事件進行響應,處理
onComplete代表被觀察者事件全部處理完畢
onError發生了錯誤的時候調用
備註:onComplete()和onError()互斥,只要調用一個,另一個就不能調用了,而且一經調用,代表事件隊列已完畢。
- 訂閱
observeOn 傳入事件發送的線程
subscribeOn 傳入處理事件的線程
story.observeOn(Schedulers.io());
story.subscribeOn(AndroidSchedulers.mainThread());
story.subscribe(reader);
簡單的使用就是這樣。