rxjava小试牛刀

来源:互联网 发布:最强手机象棋软件 编辑:程序博客网 时间:2024/05/21 13:59

名词定义

这里给出一些可能用到的名词的翻译

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的抽象类) ![此处你可以想象成创建了一个警察](http://img.blog.csdn.net/20160825151224289) ![Subscriber](http://img.blog.csdn.net/20160825152210036) 它们的基本使用方式一样,实质上,在 RxJava 的 subscribe(订阅) 过程中,Observer 也总是会先被转换成一个 Subscriber 再使用。所以如果你只想使用基本功能,选择 Observer 和 Subscriber 是完全一样的。 2,创建Observable(被观察者) ![此处你可以想成创建了一个小偷](http://img.blog.csdn.net/20160825152639544) 可以看到,这里传入了一个 OnSubscribe(观察者)对象作为参数。OnSubscribe (观察者)会被存储在返回的 Observable 对象中,它的作用相当于一个计划表,当 Observable 被订阅的时候,OnSubscribe 的 call() 方法会自动被调用,事件序列就会依照设定依次触发(对于上面的代码,就是观察者Subscriber 将会被调用三次 onNext() 和一次 onCompleted())。这样,由被观察者调用了观察者的回调方法,就实现了由被观察者向观察者的事件传递,即观察者模式。 3,Subscribe 订阅 ![这里你可想想象成,小偷(被观察者)告诉警察(观察者)我要偷东西了)](http://img.blog.csdn.net/20160825153307255)

总结:

 当小偷(Observable 被观察者)告诉(订阅Subscribe)警察(Observer 观察者)我要行动了,小偷会掉用call()方法,call方法持有警察的引用,接下来警察是该抓他还是放他走就看你了。

待续,未完。。。。。。。

0 0
原创粉丝点击