Intro To RxJava 系列教程 总结

rain | 移动 | 2016-05-03
Intro To RxJava 系列教程一共四个部分,第一部分介绍了为什么要使用 RxJava以及 RxJava的关键概念: RxJava 教程第一部分:入门之 Why Rx RxJava 教程第一部分:入门之 关键的类 RxJava 教程第一部分:入门之 生命周期管理 如果看完第一部分对于为什么要使用 RxJava 和 何时使用 RxJava 还不太明白的,可以参考 RxJava 前传: RxJava 前传 ① RxJava ... [阅读全文]
ė1196 次浏览 0

RxJava 教程第四部分:并发 之数据流发射太快如何办

rain | 移动 | 2016-04-26
RxJava 教程第四部分:并发 之数据流发射太快如何办
Backpressure Rx 中的数据流是从一个地方发射到另外一个地方。每个地方处理数据的速度是不一样的。如果生产者发射数据的速度比消费者处理的快会出现什么情况?在同步操作中,这不是个问题,例如: [crayon-57298f061dd37875531364/] 虽然上面的消费者处理数据的速度慢,但是由于是同步调用的,所以当 o.onNext(1) 执行后,一直阻塞到消费者处理完才... [阅读全文]
ė1881 次浏览 0,

RxJava 教程第四部分:并发 之意外情况处理

rain | 移动 | 2016-04-26
RxJava 教程第四部分:并发 之意外情况处理
Rx 尽量避免状态泄露到数据流之外的场景。但是有些东西本身就带有状态。比如服务器可以上线和离线、手机可以访问Wifi、按钮被按下了等。在 Rx 中国,我们在一段时间内看到这些事件,并称之为窗口(window)。其他事件在这个窗口内发生可能需要特殊处理。例如,手机在使用移动收费上网的时候,会把网络请求优先级降低,来避免天价流量费的情况。 窗口 W... [阅读全文]
ė1691 次浏览 0,

RxJava 教程第四部分:并发 之测试

rain | 移动 | 2016-04-26
在开发软件的时候,我们需要确保代码正确执行。为了快速的获取每次修改后的反馈,通常开发人员使用自定义测试。 在同步的 Rx 中测试和普通 Java 中的单元测试没有太大的区别。如果要测试异步代码,可能会有点需要注意的地方,比如要测试下面的代码: [crayon-57298f0621c76823413145/] 上面的 Observable 发射一个数据流,需要 5秒 来发射完所有的数... [阅读全文]
ė1517 次浏览 0,

RxJava 教程第四部分:并发 之线程调度

rain | 移动 | 2016-04-25
由于 Rx 目标是用在异步系统上并且 Rx 支持多线程处理,所以很多 Rx 开发者认为默认情况下 Rx 就是多线程的。 其实实际情况不是这样的,Rx 默认是单线程的。 除非你明确的指定线程,否则所有 onNext/onError/onCompleted 以及各个操作函数的调用都是在同一个线程中完成的。例如下面的示例: [crayon-57298f06233a4197813674/] 结果: [crayon-57298... [阅读全文]
ė15 次浏览 0,

RxJava 教程第三部分:驯服数据流之自定义操作函数

rain | 移动 | 2016-04-25
RxJava 教程第三部分:驯服数据流之自定义操作函数
RxJava 提供了很多操作函数。加上各种重载函数,一共有 300 多个操作函数。这些函数中只有很少一部分是核心的操作函数,离开这些核心的函数根本就没法使用 RxJava 了。其他的大部分函数只是一些便捷函数,方便开发者使用,并且他们的名字基本都说明了他们的用法。比如 如果操作函数 source.First(user -> user.isOnline()) 不存在,则我们依然可以使用 ... [阅读全文]
ė1265 次浏览 0,

RxJava 教程第三部分:驯服数据流之 hot & cold Observable

rain | 移动 | 2016-04-25
RxJava 教程第三部分:驯服数据流之 hot & cold Observable
Observable 数据流有两种类型:hot 和 cold。这两种类型有很大的不同。本节介绍他们的区别,以及作为 Rx 开发者应该如何正确的使用他们。 Cold observables 只有当有订阅者订阅的时候, Cold Observable 才开始执行发射数据流的代码。并且每个订阅者订阅的时候都独立的执行一遍数据流代码。 Observable.interval 就是一个 Cold Observable。每一个订... [阅读全文]
ė1760 次浏览 0,

RxJava 教程第三部分:驯服数据流之 时间平移

rain | 移动 | 2016-04-25
RxJava 教程第三部分:驯服数据流之 时间平移
Rx 最大的特征之一就是无法预测何时会有数据发射。有些 Observable 会同步的即可发射所有的数据,比如 range ,有些按照一定的时间间隔发射数据、有些根本无法确定到底何时发射数据。例如,鼠标移动时事件和 UDP 数据包到达的时刻。我们需要合适的工具来处理这些无法确定何时发射的事件。 Buffer 缓存 Buffer 可以收集数据并缓存起来,等缓存到固定的... [阅读全文]
ė11,517 次浏览 0,
Ɣ回顶部