RxJava響應式程式設計,入門的HelloWorld;
阿新 • • 發佈:2019-02-02
RxJava核心就是非同步,它也被稱之為響應式程式設計;最大的優勢就是隨著程式邏輯變得越來越複雜,它依然能夠保持簡潔。
Rxjava真的是讓人又愛又恨,因為它的執行緒切換和鏈式呼叫真的很好用,但是入門卻有點難度,因為它和你之前對程式碼的理解不一樣;
新增配置:
compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
下面是程式碼:
Observable.create(new ObservableOnSubscribe<String>() { @Override public voidsubscribe(ObservableEmitter<String> e) throws Exception { e.onNext("Hello"); e.onNext("World"); e.onNext("RxJava"); e.onComplete(); } }) .subscribe(new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Overridepublic void onNext(String value) { Log.i("tag", "onNext: "+value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });
輸出結果:
Holle World RxJava;
看不懂?來我們這樣寫!
//被觀察者(發射器) Observable observable = Observable.create(new ObservableOnSubscribe<String>() { @Override public void subscribe(ObservableEmitter<String> e) throws Exception { e.onNext("Hello"); e.onNext("World"); e.onNext("RxJava"); e.onComplete(); } }); //觀察者(接受器) Observer<String> observer = new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.i("tag", "onNext: "+value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } }; //訂閱事件,連結發射器和接收器; observable.subscribe(observer);
如果你還是不清楚的話,那我再說一個簡單的例子;Button的點選事件都用過吧;
Button button = new Button(this); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } });
用RxJava的思想來說它就是:
button就是一個發射器--(Observable);
onClick就是接收器--(Observer);
然後通過setOnClickListener把它們兩個連結起來--(subscribe);這樣onclick就能收到button的點選事件了;