您的位置:首页 > 编程语言 > Java开发

RxJava 学习笔记

2016-10-25 21:56 288 查看

扔物线文章 《给 Android 开发者的 RxJava 详解》 的学习笔记。

RxJava 介绍

Github 地址:

https://github.com/ReactiveX/RxJava

https://github.com/ReactiveX/RxAndroid

引入依赖:

compile ‘io.reactivex:rxjava:x.y.z’

compile ‘io.reactivex:rxandroid:x.y.z’

“a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列组成异步的、基于事件的程序的库)

RxJava 的本质是异步,是一个实现异步操作的库。

RxJava 的优势是简洁,是指逻辑上的简洁,即随着程序逻辑变得越来越复杂,它依然能够保持简洁

RxJava 的异步实现,是通过一种扩展的观察者模式来实现的

Observable 被观察者

Subscribe 订阅者(同Observable)

Observer 观察者

线程控制–Scheduler

在不指定线程的情况下,RxJava 遵循的是线程不变的原则,即:在哪个线程调用 subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如过需要切换线程,就需要用到 Scheduler(调度器)

Schedulers.immediate(): 当前线程运行,默认的 Scheduler

Schedulers.newThread(): 总是启用新线程,并在新线程执行操作

Schedulers.io(): I/O 操作(读写文件、读写数据库、网络信息交互等)所使用的 Scheduler

Schedulers.computation(): 计算所使用的 Scheduler

AndroidSchedulers.mainThread(): Android 专用,指定的操作将在Android 主程序运行。

subscribeOn: 被观察者所发生的线程,比如网络请求,I/O 操作等

observeOn: 观察者所运行的线程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android RxJava