简化的RxJava

来源:互联网 发布:淘宝怎么装修全屏海报 编辑:程序博客网 时间:2024/05/16 06:49

现在将上面的一个Demo进行简化,文章的大部分的出处还是来自这篇博客,详细可以看这篇博客http://blog.csdn.net/lzyzsd/article/details/41833541

然而仅仅打印一个字符串还要那么啰嗦?上面的代码主要为了展示RxJava背后的原理而采用的写法,RxJava其实提供很多便捷的函数来帮助我们减少代码。

首先先简化Observable,因为上面的代码只是发出一个字符串,即
只发出一个事件,Observable.just就是用来处理只发出一个事件的。则上面的代码可以减少为一行。

//更加简洁的代码,上面的Observable只发出了一个事件,可以将代码简化为        Observable<String> myObservable=Observable.just("John简化");

现在简化Subscriber,在上面的Demo中,我们并不关心OnComplete和OnError,只是在OnNext中做一些简单的处理,这时候我们就可以使用Action1类

//简化Subscriber,上面的代码我们并不关心OnComplete和OnError,此时只要在OnNext中做一些处理,这时候就会用到Action1类        Action1<String> onNextAction=new Action1<String>() {            @Override            public void call(String s) {                textView.setText(s);            }        };

subscribe方法有一个重载的版本,接受三个Action1的类型参数,这里分别对应OnNext,OnComplete,OnError函数。

myObservable.subscribe(onNextAction, onErrorAction, onCompleteAction);

这里我们并不关心OnError和OnComplete,所以只需要第一个参数就可以了

//再将Subscriber和Observable相关联,完成Subscriber对Observable的订阅        myObservable.subscribe(onNextAction);

所以代码可以简化为

Observable.just("John更加简化").subscribe(new Action1<String>() {            @Override            public void call(String s) {                textView.setText(s);            }        });
0 0
原创粉丝点击