Rxjava实例开发应用
Rxjava实例开发应用
网络请求处理(轮询,嵌套,出错重连)
功能防抖
从多级缓存获取数据
合并数据源
联合判断
与 Retrofit,RxBinding,EventBus结合使用
Rxjava实例开发应用
Rxjava实例开发应用
网络请求处理(轮询,嵌套,出错重连)
功能防抖
从多级缓存获取数据
合并数据源
联合判断
与 Retrofit,RxBinding,EventBus结合使用
RxJava源码解析
Rxjava原理
Rxjava为什么对观察者模式增加了发射器类?
Scheduler线程切换工作原理
数据的发送与接收(观察者模式)
lift的工作原理
map的工作原理
flatMap的工作原理
merge的工作原理
concat的工作原理
RxJava源码解析
Rxjava原理
Rxjava为什么对观察者模式增加了发射器类?
Scheduler线程切换工作原理
数据的发送与接收(观察者模式)
lift的工作原理
map的工作原理
flatMap的工作原理
merge的工作原理
concat的工作原理
组合操作.md
结合操作这个页面展示的操作符可用于组合多个Observables。
startWith( ) — 在数据序列的开头增加一项数据
merge( ) — 将多个Observable合并为一个
mergeDelayError( ) — 合并多个Observables,让没有错误的Observable都完成后再发射错误通知
zip( ) — 使用一个函数组合多个Observable发射的数据集合,然后再发射这个结果
and( ), then( ), and when( ) — (rxjava-joins) 通过模式和计划组合多个Observables发射的数据集合
combineLatest( ) — 当两个Observables中的任何一个发射了一个数据时,通过一个指定的函数组合每个Observable发射的最新数据(一共两个数据),然后发射这个函数的结果
join( ) and groupJoin( ) — 无论何时,如果一个Observable发射了一个数据项,只要在另一个Observable发射的数据项定义的时间窗口内,就将两个Observable发射的数据合并发射
switchOn ...
自定义操作符.md
实现自己的操作符你可以实现你自己的Observable操作符,本文展示怎么做。
如果你的操作符是被用于_创造_一个Observable,而不是变换或者响应一个Observable,使用 [create( )](http://reactivex.io/documentation/operators/create.html) 方法,不要试图手动实现 Observable。另外,你可以按照下面的用法说明创建一个自定义的操作符。
如果你的操作符是用于Observable发射的单独的数据项,按照下面的说明做:Sequence Operators 。如果你的操作符是用于变换Observable发射的整个数据序列,按照这个说明做:Transformational Operators 。
提示: 在一个类似于Groovy的语言Xtend中,你可以以 extension methods 的方式实现你自己的操作符 ,不使用本文的方法,它们也可以链式调用。详情参见 RxJava and Xtend
序列操作符下面的例子向你展示了怎样使用lift( )操作符将你的自定义操作符(在这个例子中是 myOperat ...
算术和聚合操作.md
算术和聚合操作本页展示的操作符用于对整个序列执行算法操作或其它操作,由于这些操作必须等待数据发射完成(通常也必须缓存这些数据),它们对于非常长或者无限的序列来说是危险的,不推荐使用。
rxjava-math 模块的操作符
averageInteger( ) — 求序列平均数并发射
averageLong( ) — 求序列平均数并发射
averageFloat( ) — 求序列平均数并发射
averageDouble( ) — 求序列平均数并发射
max( ) — 求序列最大值并发射
maxBy( ) — 求最大key对应的值并发射
min( ) — 求最小值并发射
minBy( ) — 求最小Key对应的值并发射
sumInteger( ) — 求和并发射
sumLong( ) — 求和并发射
sumFloat( ) — 求和并发射
sumDouble( ) — 求和并发射
其它聚合操作符
concat( ) — 顺序连接多个Observables
count( ) and countLong( ) — 计算数据项的个数并发射结果
reduce( ) — 对序列使用reduce()函 ...
条件和布尔操作.md
条件和布尔操作这个页面的操作符可用于根据条件发射或变换Observables,或者对它们做布尔运算:
条件操作符
amb( ) — 给定多个Observable,只让第一个发射数据的Observable发射全部数据
defaultIfEmpty( ) — 发射来自原始Observable的数据,如果原始Observable没有发射数据,就发射一个默认数据
(rxjava-computation-expressions) doWhile( ) — 发射原始Observable的数据序列,然后重复发射这个序列直到不满足这个条件为止
(rxjava-computation-expressions) ifThen( ) — 只有当某个条件为真时才发射原始Observable的数据序列,否则发射一个空的或默认的序列
skipUntil( ) — 丢弃原始Observable发射的数据,直到第二个Observable发射了一个数据,然后发射原始Observable的剩余数据
skipWhile( ) — 丢弃原始Observable发射的数据,直到一个特定的条件为假,然后发射原始Observabl ...
异步操作.md
异步操作下面的这些操作符属于单独的rxjava-async模块,它们用于将同步对象转换为Observable。
start( ) — 创建一个Observable,它发射一个函数的返回值
toAsync( ) or asyncAction( ) or asyncFunc( ) — 将一个函数或者Action转换为已Observable,它执行这个函数并发射函数的返回值
startFuture( ) — 将一个返回Future的函数转换为一个Observable,它发射Future的返回值
deferFuture( ) — 将一个返回Observable的Future转换为一个Observable,但是并不尝试获取这个Future返回的Observable,直到有订阅者订阅它
forEachFuture( ) — 传递Subscriber方法给一个Subscriber,但是同时表现得像一个Future一样阻塞直到它完成
fromAction( ) — 将一个Action转换为Observable,当一个订阅者订阅时,它执行这个action并发射它的返回值
fromCallable( ) ...