RXjava2 入门篇

定义

RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM

翻译:RxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库

作用

实现异步操作 类似于Android中的 AsyncTask 、Handler作用

特点

随着逻辑复杂性提高依然能保持简洁

逻辑简洁

实现优雅

使用简单

原理

 

角色

作用

类比

被观察者(Observable)

产生事件

顾客

观察者(Observer)

接收事件,并给出响应动作

厨房

订阅(Subscribe)

连接 被观察者 & 观察者

服务员

事件(Event)

被观察者 & 观察者 沟通的载体

菜式

RxJava原理可总结为:被观察者通过订阅(Subscribe)按顺序发送事件给观察者,观察者按顺序接收事件并作出对应的响应。

 基本使用

步骤1:创建被观察者 (Observable )& 生产事件

Observable<String> stringObservable = Observable.create(new ObservableOnSubscribe<String>() {
    @Override
    public void subscribe(ObservableEmitter<String> e) throws Exception {
        e.onNext("米饭");
        e.onNext("鲁菜");
        e.onNext("东北水饺");
        e.onNext("烤肉");
        e.onComplete();
    }
})

<--扩展:RxJava 提供了其他方法用于 创建被观察者对象Observable --> //

1:just(T...):直接将传入的参数依次发送出来 Observable observable = Observable.just("A", "B", "C");

2:from(T[]) / from(Iterable<? extends T>) : 将传入的数组 / Iterable 拆分成具体对象后,依次发送出来 String[] words = {"A", "B", "C"}; Observable observable = Observable.from(words);

步骤2:创建观察者 (Observer )并 定义响应事件的行为

Observer<Object> observer = new Observer<Object>() {
    @Override
    public void onSubscribe(Disposable d) {
    }

    @Override
    public void onNext(Object s) {
    }

    @Override
    public void onError(Throwable e) {

    }

    @Override
    public void onComplete() {
    }
};

步骤3:通过订阅(Subscribe)连接观察者和被观察者 

stringObservable.subscribe(observer);

gradle加依赖:

compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.0.7'

猜你喜欢

转载自blog.csdn.net/weixin_37265019/article/details/83615456