RxJava与EventBus的区别

  1. RxJava订阅与发布事件不是分开写的,是函数式编程。

  2. 指定发布事件和消费事件的方式不一样,RxJava直接通过2个方法指定,而EventBus需要单独的定义方法。

  3. RxJava比EventBus更加地强大:

a)变换:

         对于发布的事件的数据,RxJava可以拦截进行转换,XxxMap这样的方法中添加FunX类的call方法(闭包)

         map变换

         flatMap变换        序列变换

         注意一点:函数式编程要注意方法调用的顺序,如果map在

                        .observeOn(AndroidSchedulers.mainThread())之后,则map的变换方法会在observe

                        r的线程执行。




b)RxJava与Retrofit,可以实现网络请求的嵌套操作。

        如请求A接口得到数据m,再拿着数据m去请求接口B,得到数据n。

c)可以任意的切换线程

d)防抖动,在一定时间不会重复的发送事件