rxjava小试牛刀
2016-08-25 15:53
78 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_22135177/article/details/52315317
名词定义
这里给出一些可能用到的名词的翻译
Reactive 直译为反应性的,有活性的,根据上下文一般翻译为反应式、响应式 Iterable 可迭代对象,支持以迭代器的形式遍历,许多语言中都存在这个概念 Observable 可观察对象,在Rx中定义为更强大的Iterable,在观察者模式中是被观察的对象,一旦数据产生或发生变化,会通过某种方式通知观察者或订阅者 Observer 观察者对象,监听Observable发射的数据并做出响应,Subscriber是它的一个特殊实现 emit 直译为发射,发布,发出,含义是Observable在数据产生或变化时发送通知给Observer,调用Observer对应的方法,文章里一律译为发射 items 直译为项目,条目,在Rx里是指Observable发射的数据项,文章里一律译为数据,数据项
什么是 rxjava
RxJava 在 GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库),简单点说Rxjava是一个实现了异步操作的库。
为什么要使用rxjava(有什么好处)
android为异步操作提供了handle,asyncTask等,为什么要用rxjava呢? 因为它简洁。它能随着程序逻辑变的越来越复杂,依然能保持整洁。它没有那么多的嵌套调用,是链式调用,条理清晰。
rxjava怎么用?
rx有四个基本概念,Observable (可观察者,即被观察者)、 Observer (观察者)、 subscribe (订阅)、事件。Observable(被观察者) 和 Observer(观察者) 通过 subscribe() 方法实现订阅关系,从而 Observable(被观察者) 可以在需要的时候发出事件来通知 Observer(观察者)接下来看代码。 1,创建Observer(观察者)或者Subscriber(实现了Observer的抽象类) ![此处你可以想象成创建了一个警察](https://img-blog.csdn.net/20160825151224289) ![Subscriber](https://img-blog.csdn.net/20160825152210036) 它们的基本使用方式一样,实质上,在 RxJava 的 subscribe(订阅) 过程中,Observer 也总是会先被转换成一个 Subscriber 再使用。所以如果你只想使用基本功能,选择 Observer 和 Subscriber 是完全一样的。 2,创建Observable(被观察者) ![此处你可以想成创建了一个小偷](https://img-blog.csdn.net/20160825152639544) 可以看到,这里传入了一个 OnSubscribe(观察者)对象作为参数。OnSubscribe (观察者)会被存储在返回的 Observable 对象中,它的作用相当于一个计划表,当 Observable 被订阅的时候,OnSubscribe 的 call() 方法会自动被调用,事件序列就会依照设定依次触发(对于上面的代码,就是观察者Subscriber 将会被调用三次 onNext() 和一次 onCompleted())。这样,由被观察者调用了观察者的回调方法,就实现了由被观察者向观察者的事件传递,即观察者模式。 3,Subscribe 订阅 ![这里你可想想象成,小偷(被观察者)告诉警察(观察者)我要偷东西了)](https://img-blog.csdn.net/20160825153307255)
总结:
当小偷(Observable 被观察者)告诉(订阅Subscribe)警察(Observer 观察者)我要行动了,小偷会掉用call()方法,call方法持有警察的引用,接下来警察是该抓他还是放他走就看你了。
待续,未完。。。。。。。
相关文章推荐
- Android RxJava+Retrofit2.0+MVP的小试牛刀
- rxjava小试牛刀map和flatmap
- 小试牛刀RxJava2之首页检查
- HTML5小试牛刀之———制作可实时预览的照片裁剪特效
- 模仿retrofit将okhttp和rxjava进行整合
- Android实现文章+评论(MVP,RxJava,Dagger2,ButterKnife)
- Rxjava(创建类)--just1
- 对Rxjava和Retrofit的一次封装使用
- Rxjava(创建类)--Repeat
- 给 Android 开发者的 RxJava 详解
- Rxjava(Subject)-BehaviorSubject--代码分析
- 我的RxJava学习之路--和带你如何选择开源框架
- Rxjava(过滤类)-Skip
- MVP模式入门(结合Rxjava,Retrofit)
- callback网络请求转RxJava
- 解析Rxjava之一---转载自抛物线
- Android最流行框架MVP,Dagger2,RxJava
- Days46 Retrofit&rxjava&rxandroid
- 利用RxJava实现的事件总线(Event Bus)
- 了解RxJava以及如何在Android应用中使用它