美文网首页
RxJava(二、Concept)

RxJava(二、Concept)

作者: 敲代码的本愿 | 来源:发表于2016-08-23 23:10 被阅读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 详解

    相关文章

      网友评论

          本文标题:RxJava(二、Concept)

          本文链接:https://www.haomeiwen.com/subject/geynsttx.html