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
阅读全文
0 0
- Android RxJava 2.x入门例子详解(二)
- Android RxJava 2.x入门例子详解(一)
- Android RxJava 2.x入门例子详解(三)
- Android RxJava 2.x入门例子详解(四)
- Android RxJava 2.x入门例子详解(五)
- 【Android】RxJava 入门详解
- Android RxJava详解(二)
- RxJava1.x从入门到放弃再到RxJava 2.x(二)
- RxJava使用入门(二)
- RxJava学习详解(二)
- RxJava1.x从入门到放弃再到RxJava 2.x(一)
- RxJava1.x从入门到放弃再到RxJava 2.x(三)
- RxJava1.x从入门到放弃再到RxJava 2.x(四)
- RxJava 2.x.x Observable 与 Observer 入门分析
- RxJava入门第八、九问(二)
- RxJava之基础入门(二)
- 我的RxJava入门(二)
- Rxjava入门二
- The Release Process
- antd mobile(十一) MeScroll集成到项目中
- 2017夏天之哪凉快去哪里 之八
- Java多线程--并发中集合的使用之ConcurrentLinkedQueue
- Ubuntu使用Nginx搭建WordPress
- Android RxJava 2.x入门例子详解(二)
- 每天一道算法题目,求数组中的最大值和最小值
- Jetson-tx1 Caffe-SSD 安装与测试
- MySQL 悲观锁和乐观锁
- 游戏与必胜策略
- 【Python】往json文件中追加内容
- SSM启动报错
- JQuery中JSON对象与JSON字符串
- 如何给 eclipse 设置快捷键