RxJava响应式编程,入门的HelloWorld;

RxJava核心就是异步,它也被称之为响应式编程;最大的优势就是随着程序逻辑变得越来越复杂,它依然能够保持简洁。

Rxjava真的是让人又爱又恨,因为它的线程切换和链式调用真的很好用,但是入门却有点难度,因为它和你之前对代码的理解不一样;

添加配置:

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

下面是代码:

Observable.create(new ObservableOnSubscribe() {
    @Override
    public void subscribe(ObservableEmitter e) throws Exception {
        e.onNext("Hello");
        e.onNext("World");
        e.onNext("RxJava");
        e.onComplete();
    }
})
        .subscribe(new Observer() {
            @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() {
    @Override
    public void subscribe(ObservableEmitter e) throws Exception {
        e.onNext("Hello");
        e.onNext("World");
        e.onNext("RxJava");
        e.onComplete();
    }
});
//观察者(接受器)
      Observer observer = new Observer() {
            @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的点击事件了;

RxJava响应式编程,入门的HelloWorld;_第1张图片

RxJava响应式编程,入门的HelloWorld;_第2张图片


你可能感兴趣的:(Android)