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

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

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

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

Android 专用响应式编程框架 — Agera

rain | 移动 | 2016-04-25
在响应式编程(Reactive programming)这么热的今天,Google 也耐不住寂寞了,周末 Google 开源了他们在 Google Play Movies 项目中内部使用的 Android 专用的响应式编程框架 -- Agera。 Agera 和 RxJava 没有任何关系,只是响应式编程在 Android 平台上的轻量级实现。 下面是一个示例: [crayon-5885c1132b348619362997/] 更多详情请参考官方网站:... [阅读全文]
ė 0,

RxJava 教程第三部分:驯服数据流之 组合数据流

rain | 移动 | 2016-04-22
RxJava 教程第三部分:驯服数据流之 组合数据流
组合数据流 到目前为止我们介绍了如何创建数据流以及如何把数据流中的数据转换成我们需要的数据。然而,大部分应用都需要处理多个数据源的数据。需要一种把多个数据源组合一起的方法。在前面的介绍中,也看到了一些数据流会使用多个 Observable。本节介绍如何把多个数据源的数据组合为一个数据源的操作函数。 Concatenation 一个数据流发射完后继续... [阅读全文]

RxJava 教程第三部分:驯服数据流之 高级错误处理

rain | 移动 | 2016-04-11
RxJava 教程第三部分:驯服数据流之 高级错误处理
前面已经知道如何使用 Observer 来处理错误情况。在前面一节中我们通过避免 Monad 使用传统的 Java 方式来处理异常。代码中可以出现各种各样的异常情况,并不是每一个异常都需要告诉上层代码的。在传统的 Java 中,你可以捕获一个异常,然后决定是自己处理该异常还是再次抛出去。同样,在 RxJava 中,你也可以根据异常来执行不同的逻辑而无需结束 Obser... [阅读全文]

RxJava 教程第三部分:驯服数据流之 避免 monad

rain | 移动 | 2016-04-09
RxJava 教程第三部分:驯服数据流之 避免 monad
monad 是函数式编程中的抽象概念,是一种高度的数学抽象,关于 monad 的详细介绍请看这里: Functors, Applicatives, And Monads In Pictures ,不要百度搜索其他的资料, 关于 monad 的介绍,在网上有 90% 都是错误的,误导人的。 在 www.introtorx.com 中也有一个简短的定义: Monad 是一种在模型域对象中封装了计算逻辑而不是数据的一种抽象数据... [阅读全文]

RxJava 教程第三部分:驯服数据流之副作用

rain | 移动 | 2016-04-08
前面两部分,我们学习到了如何创建 Observable以及如何从 Observable 中获取数据。本部分将介绍一些更高级的用法,以及一些在大型项目中的最佳实践。 Side effects(副作用) 没有副作用的函数通过参数和返回值来程序中的其他函数相互调用。当一个函数中的操作会影响其他函数中的返回结果时,我们称该函数有副作用。写数据到磁盘、记录日志、打印调试... [阅读全文]

RxJava 教程第二部分:事件流基础之 转换数据流

rain | 移动 | 2016-04-07
RxJava 教程第二部分:事件流基础之 转换数据流
Transformation of sequences 本节介绍转换数据流中数据的方法。在真实世界中, Observable 中的数据可以是任意类型的,可能在你的应用中无法直接使用这些数据类型,你需要对这些数据对象进行一些转换。 map 和 flatMap 是本节中操作函数的基础。 下面是三种转换方式的示意: - Ana(morphism) T --> IObservable - Cata(morphism) IObservable --> T ... [阅读全文]
Ɣ回顶部