RxJava & RxAndroid简单使用(4)
来源:互联网 发布:eve for mac 编辑:程序博客网 时间:2024/05/17 07:48
这里就简单的介绍RxJava的 变换 操作map()
和flatMap()
,RxJava1.0和RxJava2.0 的传进去的参数有点不同,1.0传进去的是一个 Func1
,而2.0传进去的是一个 Function
。变换 有一个相同点:它也是把传入的参数转化之后返回另一个对象,不同的是:map()
返回的是一个 Object
对象,而flatMap()
返回的是 Observable
对象
map()
Observable.just(1,2,3) .map(new Function<Integer, String>() { @Override public String apply(Integer integer) throws Exception { return integer+""; } })//map返回的是一个Object .subscribe(new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.d("--->onNext",value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });
flatMap()
Observable.just(1,2,3) .flatMap(new Function<Integer, ObservableSource<String>>() { @Override public ObservableSource<String> apply(Integer integer) throws Exception { return Observable.just(integer+""); } })//map返回的是一个Observable .subscribe(new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.d("--->onNext",value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });
结合Scheduler切换线程操作
Observable.just(1,2,3)// 在IO线程操作,由 subscribeOn() 指定 .subscribeOn(Schedulers.io()) .observeOn(Schedulers.newThread()) .map(new Function<Integer, String>() { @Override public String apply(Integer integer) throws Exception { return "map1:"+integer; } }) // 在新线程操作,由 observeOn() 指定 .observeOn(Schedulers.io()) .map(new Function<String, String>() { @Override public String apply(String s) throws Exception { return "map2:"+s; } })// 在IO线程操作,由 observeOn() 指定 .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<String>() { @Override public void onSubscribe(Disposable d) { } @Override public void onNext(String value) { Log.d("--->onNext",value); } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });// 在Android主线程操作,由 observeOn() 指定
0 0
- RxJava & RxAndroid简单使用(4)
- RxJava & RxAndroid简单使用(1)
- RxJava & RxAndroid简单使用(2)
- RxJava & RxAndroid简单使用(3)
- RxAndroid和RxJava的简单使用
- Rxjava RxAndroid 使用
- RxJava漫谈-RxAndroid使用
- RXjava/RxAndroid/lambdas 简单demo
- RxJava RxAndroid基本使用介绍
- RxJava和RxAndroid使用详解
- RxJava(RxAndroid)基本使用入门
- RxJava RxAndroid基本使用介绍
- RxJava(RxAndroid)基本使用入门
- RxJava(RxAndroid)基本使用入门
- RxJava(RxAndroid)基本使用入门
- RxJava 和 RxAndroid 四(RxBinding的使用)
- RxJava 和 RxAndroid 四(RxBinding的使用)
- RxJava 和 RxAndroid 二(操作符的使用)
- http 400 Bad Request The request sent by the client was syntactically incorrect
- 433-岛屿的个数
- unity中异步加载游戏场景与异步加载游戏资源进度条
- js代码不执行问题
- 修改警告 解决图片无法加载的问题
- RxJava & RxAndroid简单使用(4)
- POJ1751 Highways
- 判断是不是qq内置浏览器
- admin
- ProGuard manual Usage翻译
- centos6.5安装mysql
- Hibernate与Mybatis对比
- bzoj3039: 玉蟾宫
- WF公务车新需求开发(续)