RxJava学习(一)——RxJava入门实践与上手Demo

学习响应式Java(RxJava)已经两天辣~看了几篇繁冗的博文以及资料,打算在此做一个简单的总结,供新手参考以及快速入门,也希望大家少走一些我碰到的弯路。

首先是RxJava的Github地址:https://github.com/ReactiveX/RxJava

在Studio下使用时我们需要添加依赖:

compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'

RxJava概念:

感觉跟观察者模式很像,但是有一定区别,即RxJava在观察者没有事件的情况下是不会产生回调的。

但是更爽的事情是链式调用,可以让代码更加直观简洁,下面用一个直观的Demo让你可以快速入门QAQ。

Demo实践:

与观察者模式类似,RxJava涉及两个角色,观察者(Observer或Subscriber),被观察者(Observable),但是事件传递方式以及订阅过程有所不同。

最简单的三步调用步骤:

1.我们需要定义一个观察者:

 //定义观察者
    Observer<String> observer = new Observer<String>() {
        @Override
        public void onCompleted() {
            Log.d(tag,"Completed!");
        }

        @Override
        public void onError(Throwable e) {
            Log.d(tag,"Error!");
        }

        @Override
        public void onNext(String s) {
            Log.d(tag,"Item: " + s);
        }
    };

可以看到观察者中定义了一些响应的回调事件,顾名思义可知分别是完成事件,报错事件,以及执行过程(下一个)事件。

2.我们需要定义一个被观察者:

    //被观察者  使用onCreate创建
    Observable observable = Observable.create(new Observable.OnSubscribe<String>(){
        @Override
        public void call(Subscriber<? super String> subscriber) {
            subscriber.onNext("Hello");
            subscriber.onNext("whale");
            subscriber.onNext("nangua");
            subscriber.onCompleted();
        }
    });
call方法可以理解为被观察者的回调执行方法,也就是说被观察者的一系列动作都可以在这里指明。

3.订阅:

observable.subscribe(observer);
很简单,一句代码就ok了,这里可以理解为“被观察者”制定了需要被某个观察者观察。


运行结果:


可以看到相应的回调都得到了执行。

至于其他的各种花式语法我可能会在之后的博客进行介绍,这里算是一个启蒙教育吧QAQ,也没有体现出链式调用的爽点。

应用场景:

可能有很多小伙伴这个时候会很疑惑,到底用在哪呢?其实用到的地方可以非常多,类似于EventBus对程序进行响应式判断,比如你的应用有一个会员系统,你充值以后会员等级提高了,那么是不是界面颜色得变下?顶部的Toolbar里也得从白银会员改成黄金会员了吧?各种福利也应该开启了吧?类似于onClickListener的回调,即一旦发生,就执行回调事件,但是RxJava的功能可远远不止这些,还有线程控制,参数变化等等,可以让我们更好地操纵程序以及维护代码。



发布了70 篇原创文章 · 获赞 75 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/qq_22770457/article/details/52475783