AndroidRxJava:组合合并操作符详细教程
前⾔
Rxjava,由于其基于事件流的链式调⽤、逻辑简洁 & 使⽤简单的特点,深受各⼤ Android开发者的欢迎。
Github截图
如果还不了解 RxJava,请看⽂章:
RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强⼤的操作符,⼏乎能完成所有的功能需求
今天,我将为⼤家详细介绍RxJava操作符中最常⽤的 组合 / 合并操作符,并附带 Retrofit 结合 RxJava的实例Demo教学,希望你们会喜欢。
1. 本系列⽂章主要基于 Rxjava
2.0
2. 接下来的时间,我将持续推出 Android中 Rxjava 2.0 的⼀系列⽂章,包括原理、操作符、应⽤场景、背压等等 ,有兴趣可以继
续关注!!
⽬录
⽰意图
1. 作⽤
组合 多个被观察者(Observable) & 合并需要发送的事件2. 类型
android retrofitRxJava 2 中,常见的组合 / 合并操作符 主要有:
⽰意图
下⾯,我将对每个操作符进⾏详细讲解
3. 应⽤场景 & 对应操作符介绍
注:在使⽤RxJava 2操作符前,记得在项⽬的Gradle中添加依赖:
dependencies {
compile 'java2:rxandroid:2.0.1'
compile 'java2:rxjava:2.0.7'
// 注:RxJava2 与 RxJava1 不能共存,即依赖不能同时存在
}
3.1 组合多个被观察者
该类型的操作符的作⽤ = 组合多个被观察者
concat() / concatArray()
作⽤
组合多个被观察者⼀起发送数据,合并后 按发送顺序串⾏执⾏
⼆者区别:组合被观察者的数量,即concat()组合被观察者数量≤4个,⽽concatArray()则可>4个
具体使⽤
// concat():组合多个被观察者(≤4个)⼀起发送数据
// 注:串⾏执⾏
Observable.just(4, 5, 6),
Observable.just(7, 8, 9),
Observable.just(10, 11, 12))
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Integer value) {
Log.d(TAG, "接收到了事件"+ value  );
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "对Error事件作出响应");
}
@Override
public void onComplete() {
Log.d(TAG, "对Complete事件作出响应");
}
});
// concatArray():组合多个被观察者⼀起发送数据(可>4个)        // 注:串⾏执⾏
Observable.just(4, 5, 6),
Observable.just(7, 8, 9),
Observable.just(10, 11, 12),
Observable.just(13, 14, 15))
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Integer value) {
Log.d(TAG, "接收到了事件"+ value  );
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "对Error事件作出响应");
}
@Override
public void onComplete() {
Log.d(TAG, "对Complete事件作出响应");
}
});
测试结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。