rxjava 用到了android的事件队列了吗

 我来答
芸芸DL
2017-03-27 · TA获得超过861个赞
知道小有建树答主
回答量:423
采纳率:40%
帮助的人:89.6万
展开全部
一个词:异步
rxJava在github主页上的介绍是
"a library for composing asynchronous and event-based programs using observable sequences for the Java VM"
大概的意思就是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。
其实rxJava的本质就是一个词,异步,它就是一个异步操作的库。
二、rxJava的好处
简洁
异步操作的比较关键的一点就是程序的简洁,在调用复杂的异步操作的时候,代码回显得很复杂,不仅难写也很难懂。虽然android 创造的asynTask和handler 都是为了让代码更加简洁。
rxJava的优势在于,随着程序逻辑越来越复杂,代码依然很清晰
三、rxJava的基本原理
rxJava实现异步,是通过扩展观察者模式来实现的。
首先,讲述下,观察者模式
观察者模式即是,a对象对b对象的某一个动作特别关注,做着密切的观察,当档手a对象做出了这个动作的时候,b对象立刻做出相应的处理。就好比android中的点击事件(onClickListener),

onClickListener.jpg
当button按钮被点击的时候,观察者对这个点击事件做出自己的反应
转变为通用的观察者模式如下:

rxJava.jpg
observable被观察者,在做出某一事碧蠢裤件的时候,通知observer观察者做出处理
RxJava使用的就是通用型的观察者模式。
RxJava观察者模式
rxJava有四个基本概念,observable(可观察者、被观察者)、observer(观察者)、subscrib(订阅)。
observable和observer通过subscrib实现订阅的关系,在observable需要的时候,发送通知给observer。
和传统的观察者模式不同,rxJava的回调事件除了onNext事件意外(相当于onClick,Onevent事件),还定义了两个特殊的事件:onCompleted()、onError()
onCompleted():事件结束触发。rxJava不仅仅将事件单独处理,还会把他们作为一个队列,在没有onNext()事件触发的时候,通过调用omCompleted()作为结束
onError():事件队列异常触发。当事件队列发生异常的时候调研onError(),同时事件队列停止,不执行任何事件了。
在队列事件中,onCompleted()和onError()是相互对立的悔简,两者正常只会有一个调用。
匿名用户
2017-03-26
展开全部
要添加Listener才起作用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式