Android RxJava 2.x入门例子详解(二)

来源:互联网 发布:怎么管理淘宝店铺 编辑:程序博客网 时间:2024/05/18 04:19

快捷操作符

Observable的创建方式:

just()
创建一个Observable,并自动调用onNext()发射数据,可发射一个或一组对象。

Observable.just(1,2,3).subscribe(new Consumer<Integer>() {      @Override      public void accept(Integer integer) throws Exception {                Log.d(TAG,"接收到:"+integer);            }      });

defer()
当观察者订阅时,才创建Observable,并且对每个观察者创建都是一个新的Observable。

Observable.defer(new Callable<ObservableSource<?>>() {            @Override            public ObservableSource<?> call() throws Exception {                return Observable.just("hello");            }        }).subscribe(new Consumer<Object>() {            @Override            public void accept(Object o) throws Exception {                Log.d(TAG,""+o.toString());            }        });

fromIterable()
创建一个Observable遍历集合,发送每个item。相当于多次回调onNext()方法,每次传入一个item。

List<String> list = new ArrayList<String>();        for(int i =0;i<10;i++){            list.add("Hello"+i);        }        Observable<String> observable = Observable.fromIterable(list);        Consumer<String> consumer = new Consumer<String>() {            @Override            public void accept(String s) throws Exception {                Log.d(TAG,"接收到:"+s);            }        };        observable.subscribe(consumer);

interval( )
创建一个Observable,在给定的时间间隔内发出一系列整数,可用作定时器。

//按照固定2秒一次调用onNext()方法Observable.interval(2, TimeUnit.SECONDS).subscribe(new Consumer<Long>() {      @Override      public void accept(Long aLong) throws Exception {                Log.d(TAG,""+aLong);            }      });

range( )
创建一个Observable,发射指定范围的整数序列。

//发射1到20的数,即调用20次nNext()方法,依次传入1-20数字Observable.range(1,20).subscribe(new Consumer<Integer>() {            @Override            public void accept(Integer integer) throws Exception {                Log.d(TAG,""+integer);            }        });

timer( )
创建一个Observable,延迟指定时间后发射一个指定的值

//2秒后发射Observable.timer(2, TimeUnit.SECONDS).subscribe(new Consumer<Long>() {            @Override            public void accept(Long aLong) throws Exception {                Log.d(TAG,""+aLong);            }        });

repeat( )
创建一个Observable,重复调用onNext()事件。

//循环发射123Observable.just(123).repeat().subscribe(new Consumer<Integer>() {            @Override            public void accept(Integer integer) throws Exception {                Log.d(TAG,""+integer);            }        });

更多操作符可参考官方文档:
http://reactivex.io/documentation/operators.html

原创粉丝点击