RxJava 入门引导
来源:互联网 发布:qt交叉编译ubuntu下 编辑:程序博客网 时间:2024/06/06 09:08
转载请标明出处:
http://blog.csdn.net/tyzlmjj/article/details/50696828
本文出自:【M家杰的博客】
概述
最近才刚开始去看RxJava相关的内容,看着看着就陷阱去了,总感觉自己落伍了,不谈别的,光看RxJava写出的代码就很必哟特佛
。当然了,任何开源库的普及都需要建立在强大的功能上,恩,就是这样……
这边我整理了下自己看过感觉比较好的适合新手的中文博客。然后简单的把部分控制符的功能用中文描述了下。英文比较差,老是回头看英文文档好累。
注意:英语好的同学请往这边走RxJava WIKI
基础学习
- 深入浅出RxJava 一:基础篇
- 深入浅出RxJava 二:操作符
- 深入浅出RxJava 三–响应式的好处
- 深入浅出RxJava 四-在Android中使用响应式编程
这篇文章的话有部分内容过时了,不过还是很值得看看的 - 给 Android 开发者的 RxJava 详解
这篇文章内容很多,但是个人感觉讲解的条理不清晰,刚接触RxJava推荐看前面几篇。
注意:在安卓中使用RxJava最好把RxAndroid也同时引入
compile 'io.reactivex:rxandroid:1.1.0'compile 'io.reactivex:rxjava:1.1.0'
RxAndroid是RxJava在安卓上的扩展,目前就只有几个类。
控制符
RxJava的控制符茫茫多啊!这边简单的写了一些描述,还有很多,有闲暇的时间再更新吧……
创建Observable
Observable(被观察者)一般情况下就是RxJava代码的起点,先来一份创建它的控制符
英文地址
- 静态方法
- 公有方法
需要创建实例之后调用。也就是用了上面的之后才能用这两个
转换Observable
英文地址
concatMap( )
andflatMapIterable( ) 可以理解为map的增强版,返回类型是Observable< R >,可以将一项分解为多项(比如处理集合)。并且可以给onCompleted()和onError()加返回值,返回在onNext()中。 switchMap( ) 和上面类似,但这个方法比较单一 scan( ) 可以获取前一项和当前项进行处理。比如一个数列[0,1,2,3],可以处理当前项加上前面一项变成[0,1,3,6],还可以传入第0个数 groupBy( ) 将数据进行分组,在他的方法中返回键,最终返回的是GroupedObservable< K , T > buffer( ) 使用缓冲区进行类似分组操作,最终返回的是list集合 window( ) 将数据分组成多个Observable,并且可以做很多操作:按时间间隔分段、跳过等等 cast( ) 没官方文档。进行类型转换,比如本来最终返回是ArrayList类型,
.cast(List.class)
之后就会强转成List。这个不实用,Float转Integer都不行过滤
英文地址
takeFirst( ) 取第一项,过滤掉后面的。也可以做判断,把第一项也过滤了 firstOrDefault( ) 取第一项,当没有数据或者判断第一项不满足条件时返回设置的默认值。 elementAt( ) 取第N项,就像是取集合的第N项一样 elementAtOrDefault( ) 取第N项,还可以设置默认值以防止越界 sample( )
throttleLast( ) 还是设置时间的,设置一个时间间隔,取这个时间间隔内最后一个数据。也可以放入一个Observable来取多个时间间隔的数据 throttleFirst( ) 跟上面一样,只是这个是取时间间隔内的第一个数据 throttleWithTimeout( )
debounce( ) 设定一个时间间隔,这个时间间隔从每一项的返回开始,假如在这个时间间隔内没有其他的返回项,则返回这一项。也就是一个时间间隔内,只能有一个返回项 timeout( ) 设定时间间隔,从每一项返回开始计算这个间隔,如果这个间隔内没有任何项返回,那么做超时处理,就是调用onError(),也可以为这种情况设置默认的返回 distinct( ) 过滤掉重复项。也可以自己进行比较然后给出一个Key,方法会过滤掉重复的Key distinctUntilChanged( ) 过滤掉连续的重复项。比如返回
1、1、1、2、2、2、1、2
,那么过滤后是1、2、1、2
。当然,这个也可以自己判断然后给出Key。 ofType( ) 通过类过滤,比如这样ofType(Integer.class )
,那么其它类型都会被过滤,只返回int ignoreElements( ) 把返回的数据源全部过滤了。如果运行正常会调用onCompleted()
,有异常就调用onError
。就是一个不管过程只看结果是否正确的 0 0
- RxJava 入门引导
- RxJava入门
- RxJava 入门
- RxJava 入门
- RxJava 入门
- RXJava入门
- RxJava 入门
- RxJava入门
- Rxjava入门
- RxJava 入门
- RxJava 入门
- RxJava入门
- RxJava入门
- RXJava入门
- RxJava入门
- RxJava入门
- RxJava入门
- RxJava 的使用入门
- iOS APP开发集成Apple Pay与银联SDK开发教程(附示例代码)
- java.sql.Date 日期 加减天数的实现
- 在Windows下安装pinpoint并关联自己的服务(tomcat)
- static静态代码块与非静态代码块 + 构造函数
- bash: arm-linux-gcc: No such file or directory
- RxJava 入门引导
- phpunit安装
- 解决VS中function unsafe的问题
- Ehcache详细解读
- LeetCode_OJ【57】Insert Interval
- 学习笔记------数据结构(C语言版)数组之十字链表
- 移动端资源集锦
- collections.sort方法对list的比较
- Access-Control-Allow-Origin与跨域