RxJava(RxAndroid)入门级教程及衍生教程
2015-10-15 18:06
232 查看
概念介绍
RxJava只是ReactiveX(Reactive Extensions)的一种java实现, ReactiveX是一种响应式扩展框架,有很多种实现,如RxAndroid, RxJS, RxSwift, RxRuby等等。RX采用一种类似于观察者的形式来实现各种功能,跟我们一般的写代码思路差别较大。刚开始接触可能会觉得难以理解,但是一旦掌握地话就会体会到其强大之处。其原理就是创建一个Observable对象来干活,然后使用各种操作符建立起来的链式操作,就如同流水线一样把你想要处理的数据一步一步地加工成你想要的成品然后发射(emit)给Subscriber。RxAndroid是对RxJava在Android上的扩展,如果你是做安卓开发的话,各种主线程和子线程的操作肯定会让你觉得头疼,RxAndroid可以很容易地解决你的这种困扰。
ReactiveX-GitHub
ReactiveX官网
RxAndroid
学习文章
给Android 开发者的 RxJava 详解RxJava操作符详解
操作符快查
基本操作符
create:创建被观察者,并根据适当的时机执行
onNext(),
onError(),
onComplete()
range:根据设置的起始值n和数目m,发射一系列大于等于n的m个值,类似递增操作。
defer:每次订阅都会得到一个最新的Observable对象,可以确保其内数据是最新的
interval:interval所创建的Observable对象会从0开始,每隔固定的时间发射一个数字。需要在主线程中订阅。
initialDelay:发射第一个数字延迟的时间
period=
interval:发射数字延迟的时间
repeat:会将一个Observable对象重复发射(执行)
timer: 在指定时间后发射一个数字0,注意其也是运行在computation Scheduler
转化符
buffer: 要做的事情就是将数据安装规定的大小做一下缓存,然后将缓存的数据作为一个集合发射出去。
count:缓存数目
skip:跳过数据的个数
timespan:时间
flatmap: 是一个非常用的操作符,常常用于一对多的转化。将数据根据你想要的规则进行转化后再发射出去,其原理就是将这个Observable转化为多个以原Observable发射的数据作为源数据的Observable,然后再将这多个Observable发射的数据整合发射出来,需要注意的是最后的顺序可能会交错地发射出来。
map:类似于
flatmap,不同之处是直接进行一对一的转化,而
flatmap需要通过一些中间的
Observables来进行。
scan:对一个序列的数据应用一个函数,并将这个函数的结果发射出去作为下个数据应用这个函数时候的第一个参数使用,有点类似于递归操作。
distinct:所有重复的数据都会被过滤掉。
distinctUntilChanged:过滤掉连续的重复数据。
elementAt:返回指定位置的数据。
filter:返回满足过滤条件的数据。
first:返回满足条件的第一条数据。
last:返回满足条件的最后一条数据。
skip:将数据过滤掉前n项。
take:只取数据的前n项。
combineLatest:可以将2~9个Observable发射的数据组装起来然后再发射出来。
merge:将多个Observable发射的数据整合起来发射。
startWith:在源Observable发射的数据前面插上一些数据。
相关文章推荐
- Android MIFARE NFCA源码解析
- Android开发新手教程--Android应用程序结构
- Android 关于Edittext输入框光标焦点无法及时定位解决办法.
- Android activity的startActivityForResult和onActivityResult与启动模式的关系
- android开发配置代理更新SDK
- Android下setLatestEventInfo警告、Handler警告、SimpleDateFormat警告
- android bitmap compress
- 高质量 Android 开发框架 LoonAndroid 详解
- Android中的onActivityResult和setResult方法的使用
- 在android的service中启动一个通知,点击通知无法启动activity,报一个SecurityException异常
- Android Studio代码着色插件
- Android 启动白屏或者黑屏闪现解决
- Android笔记(三十七) 如何停止AsyncTask?
- android风格统一化修改上方标题栏颜色
- android toolbar的使用
- Android之ListView原理学习与优化总结
- 杭州校招android笔试题(持续更新)
- AndroidStudio
- 如何高效地输出iOS和Android标注和切图(原创)
- Android 利用jsoup 抓取腾讯应用市场的软件APP,作为我们自己应用的数据