Rxjava2.0

作者: sweetying | 来源:发表于2018-03-23 22:24 被阅读17次

    1.定义

    • Rxjava在github上面的介绍

    RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM
    // 翻译:RxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库

    2.作用

    由于在Android开发中,只能够在UI线程进行Ui的更新,而UI线程又不能执行耗时操作,像请求网络数据的时候必须在非UI线程进行,所以就需要用一种方式去实现UI线程与非UI线程的切换,从而实现更新UI的效果,而Rxjava就是实现异步操作一个库

    3.特点

    由于 Rxjava的使用方式:基于事件流的链式调用

    • 使用简单
    • 实现优雅
    • 逻辑简洁

    可能这些特点在业务需求不复杂的情况下体现不出来,而且你还会觉得Rxjava的编程方式很复杂,但当你遇到业务需求很复杂的时候,这个时候Rxjava就体现出它的优势了,因为Rxjava他始终保持这种链式调用,并用其强大的操作符进行切换.

    4.原理介绍

    引入顾客去餐厅吃饭的例子

    顾客——拿菜单点菜——点完菜呼叫服务员——通过服务员将菜单给到厨房——厨房接收到客户点的菜——做菜

    这里面涉及到四个角色:顾客(被观察者),服务员(订阅),厨房(观察者),菜式(事件),Rxjava的底层便是采用观察者模式实现的:

    1. 被观察者(Observable): 负责生产事件

    2, 观察者(Observer): 负责接收事件,并做出响应动作

    3,订阅(Subscribe): 连接被观察者和观察者,在未订阅之前,被观察者和观察者之间是没有联系的,需要通过订阅去建立连接

    4,事件(Event): 观察者和被观察者之间沟通的载体

    如下图:

    流程图

    5.Rxjava强大的操作符

    • 创建操作符


      示意图
    • 变换操作符


      示意图
    • 组合 / 合并操作符


      示意图
    • 功能性操作符


      示意图
    • 过滤操作符


      示意图
    • 条件 / 布尔操作符


      示意图

    6.总结

    示意图

    后续待更新....
    附上一篇传送门,写的很好,初学Rxjava2.0学习者的福音

    相关文章

      网友评论

          本文标题:Rxjava2.0

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