just:将一个或多个对象转换成发射这个或这些对象的一个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: 333repeat: 创建一个重复发射指定数据或数据序列的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: just22 7008-7008/com.iwith.smart E/RxjavaActivity: just32 7008-7008/com.iwith.smart E/RxjavaActivity: just42 7008-7008/com.iwith.smart E/RxjavaActivity: just52 7008-7008/com.iwith.smart E/RxjavaActivity: just62 7008-7008/com.iwith.smart E/RxjavaActivity: just12 7008-7008/com.iwith.smart E/RxjavaActivity: just22 7008-7008/com.iwith.smart E/RxjavaActivity: just32 7008-7008/com.iwith.smart E/RxjavaActivity: just42 7008-7008/com.iwith.smart E/RxjavaActivity: just52 7008-7008/com.iwith.smart E/RxjavaActivity: just62 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: **6interval: 创建一个按照给定的时间间隔发射整数序列的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: **0tmpty: 创建一个什么都不做直接通知完成的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: onCompletederror: 创 建一个什么都不做直接通知错误的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: onErrornever: 创建一个不发射任何数据的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