首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RxJava】ReactiveX 简介 ( ReactiveX 概念 | ReactiveX 组成部分 - 被观察者 观察者 操作符 调度器 订阅 | ReactiveX 支持语言 )

一、RxJava 简介 1、ReactiveX 概念 RxJava 框架 是 ReactiveX ( Reactive Extensions 响应式编程扩展 ) 在 Java 语言 上的实现 , 该框架...ReactiveX ( Reactive Extensions 响应式编程扩展 ) 它在许多领域都有广泛的应用, : 前端开发、后端服务、移动应用程序、响应式 UI 等。...订阅可以被取消取消订阅后观察者将不再接收 Observable 的数据。...Java、JavaScript、Swift、Kotlin 等,可以在 不同的平台 / 语言 使用 异步编程模型 和 操作符。...RxJava - Java 语言 RxSwift - Swift 语言 RxKotlin - Kotlin 语言 RxJS - JavaScript 语言 开发者 可以 在 不同的平台 / 不同语言

52910
您找到你想要的搜索结果了吗?
是的
没有找到

RxJava2.0你不知道的事(三)

以上一二篇主要是RxJava2.0的改动,下面我们重点介绍下RxJava2.0的观察者模式。 RxJava2.0的观察者模式 RxJava始终以观察者模式为骨架,在2.0依然如此。...在RxJava2.0,有五种观察者模式: Observable/Observer Flowable/Subscriber Single/SingleObserver Completable/CompletableObserver...subscription; //当订阅后,会首先调用这个方法,其实就相当于onStart(), //传入的Subscription s参数可以用于请求数据或者取消订阅...根据上面的代码的结果输出可以看到,当我们调用subscription.request(n)方法的时候,不等onSubscribe()后面的代码执行,就会立刻执行onNext方法,因此,如果你在onNext...由于RxJava2.0变化较大无法直接升级,幸运的是,官方提供了RxJava2Interop这个库,可以方便地将RxJava1.x升级到RxJava2.0,或者将RxJava2.0转回RxJava1.x

62020

Rxjava2_Flowable_Sqlite_Android数据库访问实例

一、使用Rxjava访问数据库的优点: 1.随意的线程控制,数据库操作在一个线程,返回数据处理在ui线程 2.随时订阅取消订阅,而不必再使用回调函数 3.对读取的数据用rxjava进行过滤,流式处理...4.使用sqlbrite可以原生返回rxjava的格式,同时是响应式数据库框架 (有数据添加和更新时自动调用之前订阅了的读取函数,达到有数据添加自动更新ui的效果, 同时这个特性没有禁止的方法,只能通过取消订阅停止这个功能...,对于有的框架这反而是一种累赘) 二、接下来之关注实现过程: 本次实现用rxjava2的Flowable,有被压支持(在不需要被压支持的情况建议使用Observable) 实现一个稳健的的可灵活切换其他数据库的结构...void subscribe(FlowableEmitter<Boolean e) throws Exception { //这里数据库操作只做示例代码,主要关注rxjavaFlowable使用方法...public void subscribe(FlowableEmitter<Boolean e) throws Exception { //这里数据库操作只做示例代码,主要关注rxjavaFlowable

65820

Carson带你学Android:图文详解RxJava背压策略

解决方案 & 思想主要如下: 示意图如下 与 RxJava1.0 中被观察者的旧实现 Observable 对比 好了,那么上图中在RxJava 2.0观察者模型Flowable到底是什么呢?...它其实是RxJava 2.0被观察者的一种新实现,同时也是背压策略实现的承载者 请继续看下一节的介绍:背压策略的具体实现 - Flowable 4....背压策略的具体实现:FlowableRxJava2.0,采用 Flowable 实现 背压策略 正确来说,应该是 “非阻塞式背压” 策略 4.1 Flowable 介绍 定义:在 RxJava2.0...背压策略的使用 在本节,我将结合 背压策略的原理 & Flowable的使用,为大家介绍在RxJava 2.0 该如何使用Flowable来实现背压策略功能,即背压策略的使用 Flowable与Observable...同步订阅 & 异步订阅 的区别在于: 同步订阅,被观察者 & 观察者工作于同1线程 同步订阅关系没有缓存区 被观察者在发送1个事件后,必须等待观察者接收后,才能继续发下1个事件 /**

1.2K10

Android RxJava:一文带你全面了解 背压策略

RxJava1.0 中被观察者的旧实现 Observable 对比 ? 好了,那么上图中在RxJava 2.0观察者模型Flowable到底是什么呢?...背压策略的具体实现:FlowableRxJava2.0,采用 Flowable 实现 背压策略 正确来说,应该是 “非阻塞式背压” 策略 4.1 Flowable 介绍 定义:在 RxJava2.0...背压策略的使用 在本节,我将结合 背压策略的原理 & Flowable的使用,为大家介绍在RxJava 2.0 该如何使用Flowable来实现背压策略功能,即背压策略的使用 Flowable与Observable...5.1.2 同步订阅情况 同步订阅 & 异步订阅 的区别在于: - 同步订阅,被观察者 & 观察者工作于同1线程 - 同步订阅关系没有缓存区 ?...而在异步订阅关系,反向控制的原理是:通过RxJava内部固定调用被观察者线程的request(n) 从而 反向控制被观察者的发送事件速度 那么该什么时候调用被观察者线程的request(n) &

1.9K20

RxJava2.x 五种观察者和操作符简介

RxJava 使用 3 步走: 创建 Observable; 创建 Observer; 使用 subscribe 进行订阅; 因此,这三者缺一不可,只有使用了 subscribe 被观察者才会开始发送数据...1.五种观察者模式描述表 类型 描述 Observable 能够发射 0或 n 个数据,并以成功或错误事件终止 Flowable 能够发射 0或 n 个数据,并以成功或错误事件终止,支持背压,可以控制数据源发射的速度...Observable,他就会被调用 doOnLifecycle 可以在观察者订阅之后,设置是否取消订阅 doOnNext 它产生的 Observable 每发射一项数据就会调用它一次,它的 Consumer...2.fromArray 传入一个数组或集合参数,将参数注入到 Flowable ,仅此而已。...4.just just 是 RxJava 的创建操作符,用于创建一个 Observable,Consumer 是消费者,用于接收单个值。

73020

Rx Java 异步编程框架

RxJava ,专用的 Flowable 类被指定用于支持反压,Observable 专用于非反压操作(短序列、 GUI 交互等)。...Concurrency within a flow 流的并发性: 在 RxJava ,流本质上是连续的,可以被分割成可以并发运行的处理阶段: Flowable.range(1, 10) .observeOn...有几个策略可用(缓冲,下降,保持最新)通过 BackpressureStrategy 参数或通过标准 Flowable 操作符, onBackpressureBuffer,onBackpressureDrop...sub; // 当订阅后,会首先调用这个方法,其实就相当于onStart(), // 传入的 Subscription s 参数可以用于请求数据或者取消订阅...Observable 在RxJava,一个实现了Observer接口的对象可以订阅(subscribe)一个Observable 类的实例。

3K20

给初学者的RxJava2.0教程(七): Flowable

subscribe(), 我们来看看最基本的用法吧: 这段代码,分别创建了一个上游Flowable和下游Subscriber, 上下游工作在同一个线程, 和之前的Observable的使用方式只有一点点的区别...我们来试试: 这次我们取消掉了request这句代码, 来看看运行结果: zlc.season.rxjava2demo D/TAG: onSubscribezlc.season.rxjava2demo...可是这是一个同步的订阅呀, 上下游工作在同一个线程, 上游每发送一个事件应该会等待下游处理完了才会继续发事件啊, 不可能出现上下游流速不均衡的问题呀....这是因为在Flowable里默认有一个大小为128的水缸, 当上下游工作在不同的线程时, 上游就会先把事件发送到这个水缸, 因此, 下游虽然没有调用request, 但是上游在水缸中保存着这些事件,...那来试试129个呢, 把上面代码的128改成129试试: zlc.season.rxjava2demo D/TAG: onSubscribezlc.season.rxjava2demo D/TAG:

1.5K30

深入RxJava2 源码解析(一)

基本使用 使用RxJava2大致分为四个操作: 建立数据发布者 添加数据变换函数 设置数据发布线程池机制,订阅线程池机制 添加数据订阅者 // 创建flowable Flowable<Map<String...接下来的分析以Flowable为例,这里所有的例子都是按照Flowable为例,因为Flowable在实际项目中比Observable可能用的多,因为实际场景数据生产速度和数据消费速度都会有一定的不一致甚至数据生产速度远大于数据消费速度...Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins"); //核心订阅方法,从名字也能读出是指订阅实际调用处...类: public final Flowable map(Function s) { // 获取订阅者,下一篇文章会重点讲述rxjava的线程池分配机制 Scheduler.Worker w = scheduler.createWorker

1.2K20

《Kotlin 反应式编程》使用 RxKotlin 实现一个极简的 http DSL ( Reactive Programming Using Rx Kotlin )《Kotlin 反应式编程》使用

/RxKotlin RxKotlinRxJava bindings for Kotlin 使用 RxKotlin 实现一个极简的 http DSL ( Reactive Programming Using...一个语言列表如下所示: Rx 支持的编程语言 项目主页 Java RxJava : https://github.com/ReactiveX/RxJava JavaScript RxJS:https:/...Rx 比较流行的库有RxJava/RxJS/Rx.NET等,当然未来RxKotlin也必将更加流行。 提示: Rx 的社区网站是: http://reactivex.io/ 。...最后,通过 subscribe 订阅函数来绑定 sender 与 receiver 的关联: sender.subscribe(receiver) 作为接收数据的 receiver (也就是 观察者 (...这个很像协程的通道编程模型。

1.7K20

Android RxJava 的使用

本文代码对应的是Rxjava2 真前言 总的来说Rxjava可以分为5块内容 分别为 发布者(Observable/Flowable/Single/Completable) 订阅者(Subscriber...下面就说一下各块内容 发布者 对比 Observable/Flowable: Observable不支持背压(backpressure) FlowableRxjava2新增加的支持背压(backpressure...的性能较高 Single: 和Observable,Flowable一样会发送数据,不同的是订阅后只能接受到一次 普通Observable可以使用toSingle转换:Observable.just...observable.subscribe(observer); 注意上面方法的顺序 看上去是发布者订阅订阅者,之所以这样是因为链式代码的优雅 线程(Scheduler) 常用的方式是分线程处理数据..., io.reactivex.subjects.ReplaySubject, io.reactivex.subjects.UnicastSubject 在RxJava2依然存在,但现在他们不支持backpressure

2.1K30
领券