RxJava原理探究

您所在的位置:网站首页 rxjava原理 RxJava原理探究

RxJava原理探究

2022-07-24 09:03| 来源: 网络整理| 查看: 265

前言 Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。 在这里插入图片描述

本文主要: 面向 刚接触Rxjava的初学者 提供了一份 清晰、简洁、易懂的Rxjava入门教程 涵盖 基本介绍、原理 & 具体使用等

解决的是初学者不理解Rxjava原理 & 不懂得如何使用的问题 希望你们会喜欢。

本文主要基于Rxjava 2.0 如果读者还没学习过Rxjava 1.0也没关系,因为Rxjava 2.0只是在Rxjava 1.0上增加了一些新特性,本质原理 & 使用基本相同 接下来的时间,我将持续推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、应用场景、背压等等 ,有兴趣可以继续关注Carson_Ho的安卓开发笔记!! 在这里插入图片描述

示意图 目录 在这里插入图片描述

示意图

定义 RxJava 在 GitHub 的介绍: RxJava:a library for composing asynchronous and event-based programs using observable sequences for the Java VM // 翻译:RxJava 是一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库 1 2 1 2 总结:RxJava 是一个 基于事件流、实现异步操作的库作用 实现异步操作

类似于 Android中的 AsyncTask 、Handler作用

特点 由于 RxJava的使用方式是:基于事件流的链式调用,所以使得 RxJava:

逻辑简洁 实现优雅 使用简单 更重要的是,随着程序逻辑的复杂性提高,它依然能够保持简洁 & 优雅

原理 4.1 生活例子引入 我用一个生活例子引入 & 讲解 Rxjava原理: 顾客到饭店吃饭 在这里插入图片描述

示意图 在这里插入图片描述

流程图 4.2 Rxjava原理介绍 Rxjava原理 基于 一种扩展的观察者模式

Rxjava的扩展观察者模式中有4个角色:

角色 作用 类比 被观察者(Observable) 产生事件 顾客 观察者(Observer) 接收事件,并给出响应动作 厨房 订阅(Subscribe) 连接 被观察者 & 观察者 服务员 事件(Event) 被观察者 & 观察者 沟通的载体 菜式 具体原理 请结合上述 顾客到饭店吃饭 的生活例子理解: 在这里插入图片描述

示意图 在这里插入图片描述

流程图 即RxJava原理可总结为:被观察者 (Observable) 通过 订阅(Subscribe) 按顺序发送事件 给观察者 (Observer), 观察者(Observer) 按顺序接收事件 & 作出对应的响应动作。具体如下图:

在这里插入图片描述

示意图 至此,RxJava原理讲解完毕。

基本使用 本文只关注 RxJava的基本使用,更深入的RxJava使用请继续关注Carson_Ho的RxJava系列 Rxjava的使用方式有两种: 分步骤实现:该方法主要为了深入说明Rxjava的原理 & 使用,主要用于演示说明 基于事件流的链式调用:主要用于实际使用 5.1 方式1:分步骤实现 5.1.1 使用步骤

在这里插入图片描述

示意图 **

5.1.2 步骤详解

** 步骤1:创建被观察者 (Observable )& 生产事件 即 顾客入饭店 - 坐下餐桌 - 点菜 具体实现 // 1. 创建被观察者 Observable 对象 Observable observable = Observable.create(new ObservableOnSubscribe() { // create() 是 RxJava 最基本的创造事件序列的方法 // 此处传入了一个 OnSubscribe 对象参数 // 当 Observable 被订阅时,OnSubscribe 的 call() 方法会自动被调用,即事件序列就会依照设定依次被触发 // 即观察者会依次调用对应事件的复写方法从而响应事件 // 从而实现被观察者调用了观察者的回调方法 & 由被观察者向观察者的事件传递,即观察者模式 // 2. 在复写的subscribe()里定义需要发送的事件

@Override public void subscribe(ObservableEmitter emitter) throws Exception { // 通过 ObservableEmitter类对象产生事件并通知观察者 // ObservableEmitter类介绍 // a. 定义:事件发射器 // b. 作用:定义需要发送的事件 & 向观察者发送事件 emitter.onNext(1); emitter.onNext(2); emitter.onNext(3); emitter.onComplete(); } }); // 方法1:just(T…):直接将传入的参数依次发送出来 Observable observable = Observable.just(“A”, “B”, “C”); // 将会依次调用: // onNext(“A”); // onNext(“B”); // onNext(“C”); // onCompleted(); // 方法2:from(T[]) / from(Iterable


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3