RxJava与EventBus的区别
-
RxJava订阅与发布事件不是分开写的,是函数式编程。
-
指定发布事件和消费事件的方式不一样,RxJava直接通过2个方法指定,而EventBus需要单独的定义方法。
-
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)防抖动,在一定时间不会重复的发送事件
本文转自屠夫章哥 51CTO博客,原文链接:http://blog.51cto.com/4259297/1766551,如需转载请自行联系原作者