Rxjava操作符的基本使用
来源:互联网 发布:计算机模块考试软件 编辑:程序博客网 时间:2024/05/18 21:40
from将其他种类的对象和数据类型转换为Observable
Integer[] in={1,2,3,4,5,6,7,8,9,10,11,222};//将其他种类的对象和数据类型转换为Observable //map讲Integer转化成String Observable.from(in).map(new Func1<Integer, String>() { @Override public String call(Integer integer) { Log.i("dddddd",integer.toString()); return integer.toString(); } }).subscribe(new Observer<String>() { @Override public void onCompleted() { Log.i("ddddddonCompleted","onCompleted"); } @Override public void onError(Throwable e) { Log.i("ddddddoonError","onError"); } @Override public void onNext(String s) { Log.i("ddddddonNext","onNext"); } });
range从一开始显示10个数据
Observable.range(1,10).subscribe(new Subscriber<Integer>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Integer integer) { Log.i("ddddddonNext1-10::",integer.toString()); } });
filter过滤大于8的数据
Observable.from(in).map(new Func1<Integer, Integer>() { @Override public Integer call(Integer integer) { Log.i("dddddd",integer.toString()); return integer; } }).filter(new Func1<Integer, Boolean>() { @Override public Boolean call(Integer integer) { return integer>8; } }).subscribe(new Subscriber<Integer>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Integer integer) { Log.i("ddddddfilteronNext","onNext"+integer); } });
interval延迟执行数据
final int count_time = 60; //总时间/*常用的颗粒度 TimeUnit.DAYS //天 TimeUnit.HOURS //小时 TimeUnit.MINUTES //分钟 TimeUnit.SECONDS //秒 TimeUnit.MILLISECONDS //毫秒 1、时间颗粒度转换 public long toMillis(long d) //转化成毫秒 public long toSeconds(long d) //转化成秒 public long toMinutes(long d) //转化成分钟 public long toHours(long d) //转化成小时 public long toDays(long d) //转化天*/Observable.interval(0, 1, TimeUnit.SECONDS) //0延迟 每隔1秒触发 .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())//操作UI主要在UI线程 .take(count_time + 1) //设置循环次数 .map(new Func1<Long, Long>() { @Override public Long call(Long integer) { return count_time - integer; } }) //从60-1 .doOnSubscribe(new Action0() { @Override public void call() { log.setClickable(false); } }) //执行过程中按键为不可点击状态 .subscribe(new Observer<Long>() { @Override public void onCompleted() {//循环结束调用此方法 log.setText(" 哈哈哈哈"); } @Override public void onError(Throwable e) { e.printStackTrace(); } @Override public void onNext(Long aLong) {//每隔一秒执行 log.setText("重获(" + aLong + ")"); } });
Create从头开始创建一个Observable
create方法的函数中检查观察者的isUnsubscribed状态,以便在没有观察者的时候,让你的Observable停止发射数据或者做昂贵的运算
Observable.create(new Observable.OnSubscribe<Integer>() { @Override public void call(Subscriber<? super Integer> subscriber) { if(!subscriber.isUnsubscribed()){ for(int i= 1;i<=9;i++){ subscriber.onNext(i); } subscriber.onCompleted(); } } }).subscribe(new Subscriber<Integer>() { @Override public void onCompleted() { Log.i("ddddcreate","onCompleted"); } @Override public void onError(Throwable e) { } @Override public void onNext(Integer integer) { Log.i("ddddcreate","onNext:::"+integer); } });
记得添加添加依赖
compile ‘com.squareup.retrofit2:adapter-rxjava:2.3.0’
compile ‘io.reactivex:rxandroid:1.2.1’
阅读全文
0 0
- Rxjava操作符的基本使用
- RXjava基本操作符
- Rxjava 基本操作符
- 【RxJava】操作符的使用
- RxJava的基本使用
- RxJava的基本使用
- RxJava的基本使用
- RxJava的基本使用
- Android RxJava使用介绍(二) RxJava的操作符
- Android RxJava使用介绍(三) RxJava的操作符
- Android RxJava使用介绍(四) RxJava的操作符
- Android RxJava使用介绍(二) RxJava的操作符
- Android RxJava使用介绍(三) RxJava的操作符
- Android RxJava使用介绍(四) RxJava的操作符
- Android RxJava使用介绍(二) RxJava的操作符
- Android RxJava使用介绍(二) RxJava的操作符
- Android RxJava使用介绍(三) RxJava的操作符
- Android RxJava使用介绍(四) RxJava的操作符
- 自定义类报构造方法异常NoSuchMethodException
- spring与mybatis三种整合方法
- 一个判断session是否过期的小技巧
- http请求头分析
- C++编译
- Rxjava操作符的基本使用
- 阿里车牌识别
- Android 属性动画解析(一): 基本用法
- Linux下mysql数据库自动定时备份
- Java设计模式之单例模式-Singleton
- 2017.11.23笔记
- Nswoj每日一题:水仙花数
- base64编码算法与c语言实现
- Ionic3 如何打包引入第三方css文件