RxJava可以说现在是相当的火。前段时间面试也被经常问到,由于以前项目中没用到过,所以一直只是听说这个东西,只是大概了解了一下,所以这方面问题回答的不是很好。那RxJava到底是什么呢?
官方解释:RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
翻译:一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库
上面的解释你可能一脸懵逼,但是没关系,我们接下来一起来学习下。
Github地址: https://github.com/ReactiveX/RxJava https://github.com/ReactiveX/RxAndroid
引入依赖: compile ‘io.reactivex:rxjava:1.0.14’ compile ‘io.reactivex:rxandroid:1.0.1’
RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概括得非常精准。
然而,对于初学者来说,这太难看懂了。因为它是一个『总结』,而初学者更需要一个『引言』。
其实, RxJava 的本质可以压缩为异步这一个词。说到根上,它就是一个实现异步操作的库,而别的定语都是基于这之上的。
在介绍RxJava使用方法之前,先说明下几个概念,最核心的应该就是观察者和被观察者了。
观察者:Observer被观察者:Observable订阅:subscribelogcat如下:
06-08 09:56:51.768 27699-27699/com.example.boguang.demo E/RxAndroidActivity: onNext: s = hello 06-08 09:56:51.768 27699-27699/com.example.boguang.demo E/RxAndroidActivity: onNext: s = world 06-08 09:56:51.768 27699-27699/com.example.boguang.demo E/RxAndroidActivity: onCompleted...Observable不可以直接实例化,因为构造方法是protected的
protected Observable(OnSubscribe<T> f) { this.onSubscribe = f; }对应logcat:
06-08 09:38:30.985 26929-26929/com.example.boguang.demo E/RxAndroidActivity: onNext: s = wms1993 06-08 09:38:30.985 26929-26929/com.example.boguang.demo E/RxAndroidActivity: onNext: s = love 06-08 09:38:30.985 26929-26929/com.example.boguang.demo E/RxAndroidActivity: onNext: s = ranran 06-08 09:38:30.985 26929-26929/com.example.boguang.demo E/RxAndroidActivity: onNext: s = 1314 06-08 09:38:30.985 26929-26929/com.example.boguang.demo E/RxAndroidActivity: onCompleted...当你有一个数组对象的时候,通过from方法创建Observable应该是最简单的,调用from之后然后subscribe一下,这样RxJava就可以使用了。
