1. 程式人生 > >RxJava響應式程式設計,入門的HelloWorld;

RxJava響應式程式設計,入門的HelloWorld;

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 void 
subscribe(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) { } @Override
public 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的點選事件了;