Rxjava的簡單使用

我自己的Rxjava學習

都在說Rxjava好用,就學一下

  1. 創建被觀察者
    調用被觀察者的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+"");                }            }        });
  1. 創建觀察者

直接用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()互斥,只要調用一個,另一個就不能調用了,而且一經調用,代表事件隊列已完畢。

  1. 訂閱
    observeOn 傳入事件發送的線程
    subscribeOn 傳入處理事件的線程
 story.observeOn(Schedulers.io());
 story.subscribeOn(AndroidSchedulers.mainThread());
 story.subscribe(reader);

簡單的使用就是這樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章