RxJava(二、Concept)

2016-08-23  本文已影响72人  敲代码的本愿

目录

一、Is what 是什么
二、Concept 概念
三、Basic realization 基本实现
四、Scheduler 线程控制(上)
五、Scheduler 线程控制(下)
六、变换

因个人学习需要,故文章内容均为网上摘抄整理,感谢创作者的辛勤,源文章地址请看文末。

概念

RxJava的异步实现,是通过一种 扩展的观察者模式 来实现的。

什么是观察者模式?
即:A对象(观察者)对B对象(被观察者)的某种变化高度敏感,在B变化的瞬间做出反应。

举个栗子:

View的点击事件。
通过 setOnClickListener() 方法,View持有 onClickListener 的引用,当点击时,View自动调用 onClickListeneronClick() 方法。
若将概念抽象出来(如下),就由专用的观察者模式转变为通用的观察者模式。(专用到通用的理解:对思想逻辑的学习复用)

                View --> 被观察者
     OnClickListener --> 观察者
setOnClickListener() --> 订阅
           onClick() --> 事件

RxJava 作为一个工具库,使用的就是通用形式的观察者模式。

注意:RxJava中,如果一个Observerble(被观察者)没有任何的的Subscriber(订阅者,即:订阅了事件的观察者),那么这个Observable不会发出任何事件)。

四个概念

  1. Observable (被观察者)
  2. Observer (观察者)
  3. subscribe() (订阅)
  4. 事件
    ObservableObserver 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer

三个事件回调方法

  1. onNext():普通队列事件。类似onClick()
  2. onCompleted():事件队列完结。RxJava不仅把每个事件单独处理,还会把它们看作成一个队列。并规定,当不会再有新的 onNext() 发出时,需要触发 onCompleted() 作为标志。
  3. onError():事件队列异常。在事件处理过程中出现异常,onError() 会被触发,同时队列自动终止,不允许再有事件发出。

注意:在一个正确运行的事件序列中, onCompleted()onError() 有且只有一个,并且是事件序列中的最后一个。同时,二者也是互斥关系,即在队列中调用了其中一个,就不应该再调用另外一个。

RxJava观察者模式

参考
给 Android 开发者的 RxJava 详解

上一篇下一篇

猜你喜欢

热点阅读