just()
作用: 快速创建1个被观察者对象(Observable)发送事件的特点:直接发送传入的事件 应用场景 快速创建 被观察者对象(Observable) & 发送10个以下事件 Observable.just(1,2,3,4).subscribe(new Observer<Integer>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(Integer value) { Log.i(TAG,"value : " + value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });fromArray()
作用 快速创建1个被观察者对象(Observable)发送事件的特点:直接发送传入的数组数据 应用场景 快速创建被观察者对象(Observable) & 发送10个以上事件(数组形式)数组元素遍历fromIterable()
作用 快速创建1个被观察者对象(Observable)发送事件的特点:直接发送传入的集合List数据 应用场景 快速创建被观察者对象(Observable) & 发送10个以上事件(集合形式)集合元素遍历defer()
作用 直到有观察者(Observer )订阅时,才动态创建被观察者对象(Observable) & 发送事件
应用场景 动态创建被观察者对象(Observable) & 获取最新的Observable对象数据
<-- 1. 第1次对i赋值 ->> Integer i = 10; // 2. 通过defer 定义被观察者对象 // 注:此时被观察者对象还没创建 Observable<Integer> observable = Observable.defer(new Callable<ObservableSource<? extends Integer>>() { @Override public ObservableSource<? extends Integer> call() throws Exception { return Observable.just(i); } }); <-- 2. 第2次对i赋值 ->> i = 15; <-- 3. 观察者开始订阅 ->> // 注:此时,才会调用defer()创建被观察者对象(Observable) observable.subscribe(new Observer<Integer>() { @Override public void onSubscribe(Disposable d) { Log.d(TAG, "开始采用subscribe连接"); } @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事件作出响应"); } });测试结果:因为是在订阅时才创建,所以i值会取第2次的赋值
timer()
作用 快速创建1个被观察者对象(Observable)发送事件的特点:延迟指定时间后,发送1个数值0(Long类型) 应用场景 延迟指定事件,发送一个0,一般用于检测 // 该例子 = 延迟2s后,发送一个long类型数值 Observable.timer(2, TimeUnit.SECONDS) .subscribe(new Observer<Long>() { @Override public void onSubscribe(Disposable d) { Log.d(TAG, "开始采用subscribe连接"); } @Override public void onNext(Long value) { Log.d(TAG, "接收到了事件"+ value ); } @Override public void onError(Throwable e) { Log.d(TAG, "对Error事件作出响应"); } @Override public void onComplete() { Log.d(TAG, "对Complete事件作出响应"); } });interval()
作用 快速创建1个被观察者对象(Observable)发送事件的特点:每隔指定时间 就发送 事件 // 参数说明: // 参数1 = 第1次延迟时间; // 参数2 = 间隔时间数字; // 参数3 = 时间单位; Observable.interval(3,1,TimeUnit.SECONDS) // 该例子发送的事件序列特点:延迟3s后发送事件,每隔1秒产生1个数字(从0开始递增1,无限个) .subscribe(new Observer<Long>() { @Override public void onSubscribe(Disposable d) { Log.d(TAG, "开始采用subscribe连接"); } // 默认最先调用复写的 onSubscribe() @Override public void onNext(Long value) { Log.d(TAG, "接收到了事件"+ value ); } @Override public void onError(Throwable e) { Log.d(TAG, "对Error事件作出响应"); } @Override public void onComplete() { Log.d(TAG, "对Complete事件作出响应"); } });intervalRange()
作用 快速创建1个被观察者对象(Observable)发送事件的特点:每隔指定时间 就发送 事件,可指定发送的数据的数量 // 参数说明: // 参数1 = 事件序列起始点; // 参数2 = 事件数量; // 参数3 = 第1次事件延迟发送时间; // 参数4 = 间隔时间数字; // 参数5 = 时间单位 Observable.intervalRange(3,10,2, 1, TimeUnit.SECONDS) // 该例子发送的事件序列特点: // 1. 从3开始,一共发送10个事件; // 2. 第1次延迟2s发送,之后每隔2秒产生1个数字(从0开始递增1,无限个) .subscribe(new Observer<Long>() { @Override public void onSubscribe(Disposable d) { Log.d(TAG, "开始采用subscribe连接"); } // 默认最先调用复写的 onSubscribe() @Override public void onNext(Long value) { Log.d(TAG, "接收到了事件"+ value ); } @Override public void onError(Throwable e) { Log.d(TAG, "对Error事件作出响应"); } @Override public void onComplete() { Log.d(TAG, "对Complete事件作出响应"); } });range()
作用 快速创建1个被观察者对象(Observable)发送事件的特点:连续发送 1个事件序列,可指定范围 // 参数说明: // 参数1 = 事件序列起始点; // 参数2 = 事件数量; // 注:若设置为负数,则会抛出异常 Observable.range(3,10) // 该例子发送的事件序列特点:从3开始发送,每次发送事件递增1,一共发送10个事件 .subscribe(new Observer<Integer>() { @Override public void onSubscribe(Disposable d) { Log.d(TAG, "开始采用subscribe连接"); } // 默认最先调用复写的 onSubscribe() @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事件作出响应"); } });rangeLong()
作用:类似于range(),区别在于该方法支持数据类型 = Long