从零开始的RxJava2.0教程(四)在安卓中的应用
来源:互联网 发布:php linux 编辑:程序博客网 时间:2024/06/05 12:16
1. 前言
在第1 2 3篇中,我介绍了RxJava 2.0的基本用法。这一篇将介绍在安卓中的基本用法。
附上本系列教程的链接。
从零开始的RxJava2.0教程(一)基础
从零开始的RxJava2.0教程(二)操作符
从零开始的RxJava2.0教程(三)响应式的好处
从零开始的RxJava2.0教程(四)在安卓中的应用
2. RxAndroid
RxAndroid是RxJava针对Android平台的扩展库。
曾几何时,RxAndroid确实提供了很多的实用的方法,但后来社区上很多人对这库的结构有意见,然后作者便进行了重构,现在只保留了AndroidSchedulers
, 现在基本RxAndroid只有一个功能,那就是AndroidSchedulers.mainThread
方法用于指定主线程。
以前那些类被划分到了其他一些Rx库,比如 RxBinding
, RxLifecycle
。这里我并不打算介绍,因为对于新手来说,为时太早,如果你有兴趣,可以自己查阅相关资料。
3. 配合 Retrofit 2
目前来说,android的网络库基本被 Retrofit + OkHttp 一统天下了。因为它确实很优秀。
当然,RxJava的影响力也不容小觑,Retrofit 也提供了对RxJava 的支持,截止到目前(2016.11.06)为止,官方似乎还没有支持RxJava 2.0。不过你不用担心,已经有大神帮我们做好了。
要使用 Retrofit
需要引入对应的库。
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
retrofit2
依赖于 okhttp3
,而 okhttp3
又依赖于okio
。最后一项便是大神写好的 retrofit2-rxjava2-adapter
适配器啦。
假设我们现在需要去获取百度页面的html代码。
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
定义好请求接口。注意,返回值是 Flowable
类型。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
在创建 Retrofit
的时候添加对 RxJava 2
的适配器,这样,请求就可以直接返回 Flowable
。 然后就可以进行 RxJava 2
的操作了。
4. 从RxJava 2中获取数据
前面我介绍了可以通过 fromX
的方法把数组、列表等数据发射出去。那么有没有办法直接把发射的数据获取出来而不是通过订阅者来输出呢?
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
比如这里,我发射了1到100总计100个数据,我们可以通过 blockingX
方法来拿到这些数据。
5. 结束
本系列教程到此结束,但我介绍的仅仅只是 RxJava
的冰山一角,如果你有更高的需求,请查阅其他资料。
感谢您的阅读。
- 从零开始的RxJava2.0教程(四)在安卓中的应用
- 从零开始的RxJava2.0教程(四)在安卓中的应用
- 从零开始的RxJava2.0教程(四)在安卓中的应用
- 从零开始的RxJava2.0教程(四)在安卓中的应用
- 从零开始的RxJava2.0教程(四)在安卓中的应用
- 从零开始的RxJava2.0教程(一)基础
- 从零开始的RxJava2.0教程(一)基础
- 从零开始的RxJava2.0教程(一)基础
- 从零开始的RxJava2.0教程(一)基础
- 从零开始的RxJava2.0教程(一)基础
- 从零开始的RxJava2.0教程(一)基础
- 从零开始的RxJava2.0教程(一)基础
- RxJava2.0在安卓中的二级缓存策略
- RxJava2.0在安卓中的二级缓存策略
- RxJava2.0在安卓中的二级缓存策略
- RxJava2.0在安卓中的二级缓存策略
- RxJava2.0教程(四)
- 给初学者的RxJava2.0教程(四)
- log4j2 使用详解
- 自动装箱和自动拆箱的细节
- 二叉搜索树
- 关于电脑开机报88880005的解决方法
- python2.7下的urllib和urllib2
- 从零开始的RxJava2.0教程(四)在安卓中的应用
- QT——connect的正确写法
- 最完整的Mybatis Generator 配置文件详解
- Spring Session解决分布式Session问题的实现原理
- select2使用
- 近十年量化交易领域最重要的十本参考书是哪些
- vb.net 教程 20-1 农历 1
- 购物车
- 关于c++显示调用析构函数的陷阱