RxJava使用详解
RxJava使用详解系列文章
《 RxJava使用详解--转换操作符》详细的例子可以查看文章末尾的源码
一、RxJava有什么用?
简单说几点:简化代码、简单实现异步错误处理、轻松使用并发、有很多操作符,可组合使用,使用非常灵活。
二、下面说一下RxJava常用的创建操作符,其他操作符会在后面的几篇文章里再为大家详细介绍。
常见的创建操作符:create()、just()、from()、defer()、interval()、timer()、range()、repeat()、empty()、never()、error()。
1.create():从头开始创建一个Observable对象,默认不在任何特定的调度器上运行,
2.just():创建一个发射指定值得Observable对象,只是简单的将数据原样发射,原来是什么类型就发射什么类型,顺序就是按照参数列表的顺序进行发射,
3.from():可以转换Future、Itetable和数组,对于Iterable和数组,产生的Observable会发射Iterable或者数组的每一项数据;对于Future,Observable会发射Future.get()方法返回的单个数据,并且支持设置超时时间、时间单位、运行所在线程,如果超过设置的超时时间,就发射错误通知。
4.defer():直到有观察者订阅时才会创建Observable对象,并且为每一个观察者创建一个新的Observable对象
5.interval():创建一个按固定时间间隔发射整数数列的Observable对象,有多个重载方法,可以都看一下,介绍一下三个参数的构造函数:第一个参数:第一次延时多久发射数据, 第二个参数:发射数据的时间间隔(从第二次开始),第三个参数:时间单位,第四个参数:指定发射相数据所在的线程,
默认是在computation调度器上运行,
6.timer():创建一个Observable对象,它在一个给定的延迟后发射一个特殊的值0,默认在computation调度器上运行,可以通过参数指定运行的线程
7.range():创建一个发射特定整数序列的Observable对象,可以通过参数指定运行线程,以下构造函数的参数说明:第一个参数:起始值,第二个参数:终止值,第三个参数:运行线程。如果终止值为0,将导致Observable对象不发送任何数据,如果设置成负数就会抛异常
默认不在任何特定的调度器上
8.repeat():创建一个发射特定数量重复多次的Observable对象,多个重载方法,默认在transpoline调度器上运行
9.empty()、never()、error():一般用于测试,有时候也可以结合其他的Observables,或者作为其他需要Observable的操作符的参数
更多详细的内容,可以查看源码