RXjava 创建操作符
2017-03-16 09:56
330 查看
just:将一个或多个对象转换成发射这个或这些对象的一个Observable
from:将一个Iterable, 一个Future, 或者一个数组转换成一个Observable
repeat:创建一个重复发射指定数据或数据序列的Observable
加参数:循环两次
range:创建一个发射指定范围的整数序列的Observable
interval:创建一个按照给定的时间间隔发射整数序列的Observable
timer:创建一个在给定的延时之后发射单个数据的Observable
tmpty:创建一个什么都不做直接通知完成的Observable
error:创建一个什么都不做直接通知错误的Observable
never:创建一个不发射任何数据的Observable
create:使用一个函数从头创建一个Observable
Observable.just(1,55,99,33) .subscribe(new Subscriber<Integer>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Integer integer) { Log.e(TAG,"**"+ integer); } });
03-16 09:55:14.973 2902-2902/com.iwith.smart E/RxjavaActivity: **1 03-16 09:55:14.973 2902-2902/com.iwith.smart E/RxjavaActivity: **55 03-16 09:55:14.973 2902-2902/com.iwith.smart E/RxjavaActivity: **99 03-16 09:55:14.973 2902-2902/com.iwith.smart E/RxjavaActivity: **33
from:将一个Iterable, 一个Future, 或者一个数组转换成一个Observable
List<String> list = new ArrayList<String>(); list.add("111"); list.add("222"); list.add("333"); Observable.from(list) .subscribe(new Subscriber<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { Log.e(TAG,s); } });
03-16 09:56:49.562 2902-2902/com.iwith.smart E/RxjavaActivity: 111 03-16 09:56:49.562 2902-2902/com.iwith.smart E/RxjavaActivity: 222 03-16 09:56:49.563 2902-2902/com.iwith.smart E/RxjavaActivity: 333
repeat:创建一个重复发射指定数据或数据序列的Observable
String[] items = {"just1","just2","just3","just4","just5","just6"}; Observable.from(items) .repeat() .subscribe(new Subscriber<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { Log.e(TAG,s); } });
2 7008-7008/com.iwith.smart E/RxjavaActivity: just1
2 7008-7008/com.iwith.smart E/RxjavaActivity: just2
2 7008-7008/com.iwith.smart E/RxjavaActivity: just3
2 7008-7008/com.iwith.smart E/RxjavaActivity: just4
2 7008-7008/com.iwith.smart E/RxjavaActivity: just5
2 7008-7008/com.iwith.smart E/RxjavaActivity: just6
2 7008-7008/com.iwith.smart E/RxjavaActivity: just1
2 7008-7008/com.iwith.smart E/RxjavaActivity: just2
2 7008-7008/com.iwith.smart E/RxjavaActivity: just3
2 7008-7008/com.iwith.smart E/RxjavaActivity: just4
2 7008-7008/com.iwith.smart E/RxjavaActivity: just5
2 7008-7008/com.iwith.smart E/RxjavaActivity: just6
2 7008-7008/com.iwith.smart E/RxjavaActivity: just1
..........
加参数:循环两次
Observable.from(items) .repeat(2) .subscribe(new Subscriber<String>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { Log.e(TAG,s); } });
03-16 10:03:23.199 11764-11764/com.iwith.smart E/RxjavaActivity: just1 03-16 10:03:23.199 11764-11764/com.iwith.smart E/RxjavaActivity: just2 03-16 10:03:23.199 11764-11764/com.iwith.smart E/RxjavaActivity: just3 03-16 10:03:23.199 11764-11764/com.iwith.smart E/RxjavaActivity: just4 03-16 10:03:23.199 11764-11764/com.iwith.smart E/RxjavaActivity: just5 03-16 10:03:23.199 11764-11764/com.iwith.smart E/RxjavaActivity: just6 03-16 10:03:23.200 11764-11764/com.iwith.smart E/RxjavaActivity: just1 03-16 10:03:23.200 11764-11764/com.iwith.smart E/RxjavaActivity: just2 03-16 10:03:23.200 11764-11764/com.iwith.smart E/RxjavaActivity: just3 03-16 10:03:23.201 11764-11764/com.iwith.smart E/RxjavaActivity: just4 03-16 10:03:23.201 11764-11764/com.iwith.smart E/RxjavaActivity: just5 03-16 10:03:23.201 11764-11764/com.iwith.smart E/RxjavaActivity: just6
range:创建一个发射指定范围的整数序列的Observable
Observable.range(2,5) .subscribe(new Action1<Integer>() { @Override public void call(Integer integer) { Log.e(TAG,"**"+integer); } });
03-16 10:24:26.548 1307-1307/com.iwith.smart E/RxjavaActivity: **2 03-16 10:24:26.548 1307-1307/com.iwith.smart E/RxjavaActivity: **3 03-16 10:24:26.549 1307-1307/com.iwith.smart E/RxjavaActivity: **4 03-16 10:24:26.549 1307-1307/com.iwith.smart E/RxjavaActivity: **5 03-16 10:24:26.549 1307-1307/com.iwith.smart E/RxjavaActivity: **6
interval:创建一个按照给定的时间间隔发射整数序列的Observable
Observable.interval(1, TimeUnit.SECONDS) .subscribe(new Action1<Long>() { @Override public void call(Long aLong) { Log.e(TAG,"**"+aLong); } });
03-16 10:24:58.566 1307-3872/com.iwith.smart E/RxjavaActivity: **0 03-16 10:24:59.566 1307-3872/com.iwith.smart E/RxjavaActivity: **1 03-16 10:25:00.566 1307-3872/com.iwith.smart E/RxjavaActivity: **2 03-16 10:25:01.565 1307-3872/com.iwith.smart E/RxjavaActivity: **3 03-16 10:25:02.566 1307-3872/com.iwith.smart E/RxjavaActivity: **4 03-16 10:25:03.565 1307-3872/com.iwith.smart E/RxjavaActivity: **5 .......
timer:创建一个在给定的延时之后发射单个数据的Observable
Observable.timer(1, TimeUnit.SECONDS) .subscribe(new Action1<Long>() { @Override public void call(Long aLong) { Log.e(TAG,"**"+aLong); } });
03-16 10:26:08.677 4910-5114/com.iwith.smart E/RxjavaActivity: **0
tmpty:创建一个什么都不做直接通知完成的Observable
Observable.just(1,2,3) .empty() .subscribe(new Subscriber<Object>() { @Override public void onCompleted() { Log.e(TAG,"onCompleted"); } @Override public void onError(Throwable e) { Log.e(TAG,"onError"); } @Override public void onNext(Object o) { Log.e(TAG,"onNext"); } });
03-16 10:26:48.430 4910-4910/com.iwith.smart E/RxjavaActivity: onCompleted
error:创建一个什么都不做直接通知错误的Observable
Observable.just(1,2,3) .error(new RuntimeException()) .subscribe(new Subscriber<Object>() { @Override public void onCompleted() { Log.e(TAG,"onCompleted"); } @Override public void onError(Throwable e) { Log.e(TAG,"onError"); } @Override public void onNext(Object o) { Log.e(TAG,"onNext"); } });
03-16 10:27:13.626 4910-4910/com.iwith.smart E/RxjavaActivity: onError
never:创建一个不发射任何数据的Observable
Observable.just(1,2,3) .never() .subscribe(new Subscriber<Object>() { @Override public void onCompleted() { Log.e(TAG,"onCompleted"); } @Override public void onError(Throwable e) { Log.e(TAG,"onError"); } @Override public void onNext(Object o) { Log.e(TAG,"onNext"); } });
无任何打印
create:使用一个函数从头创建一个Observable
Observable.create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("onNext1"); subscriber.onNext("onNext2"); subscriber.onNext("onNext3"); subscriber.onCompleted(); } }).subscribe(new Subscriber<String>() { @Override public void onCompleted() { Log.e(TAG,"onCompleted"); } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { Log.e(TAG,s); } });
03-16 10:31:15.594 4910-4910/com.iwith.smart E/RxjavaActivity: onNext1 03-16 10:31:15.594 4910-4910/com.iwith.smart E/RxjavaActivity: onNext2 03-16 10:31:15.595 4910-4910/com.iwith.smart E/RxjavaActivity: onNext3 03-16 10:31:15.595 4910-4910/com.iwith.smart E/RxjavaActivity: onCompleted
相关文章推荐
- RxJava操作符----RxJava Creating Observables(创建操作符)
- Android RxJava操作符详解系列: 创建操作符
- RxJava 创建操作符 defer
- RxJava—创建操作符
- RxJava 创建操作符 timer与interval
- Android拾萃 - RxJava2之创建操作符及其demo
- RxJava中的创建操作符
- Android函数响应式编程——必学的RxJava创建操作符create、just、from、interval、range、repeat
- Android RxJava 创建操作符Interval
- RxJava----操作符:创建操作符
- RxJava【创建】操作符 create just from defer timer interval
- RxJava进阶一(创建类操作符)
- Android RxJava创建操作符Timer的方法
- RxJava使用详解--创建操作符
- RxJava 操作符之创建类操作符
- RxJava操作符之创建操作符
- RxJava 创建操作符 timer与interval
- RxJava的学习之创建操作符
- RxJava系列3:RxJava操作符-创建操作符
- Android RxJava 创建操作符Timer