添加依赖 compile 'io.reactivex.rxjava2:rxjava:2.0.0-RC5' compile 'io.reactivex.rxjava2:rxandroid:2.0.0-RC1...:rxjava:2.0.0-RC5' implementation 'io.reactivex.rxjava2:rxandroid:2.0.0-RC1' implementation '...用法示例 (用于监听Observable发送的数据, 如果Observable发送的数据等于某个值, 就断绝订阅关系): ?...; e.onNext("酗酒"); e.onComplete(); } }); } 运行示例...e.onNext("酗酒"); e.onComplete(); } }); } 运行示例
这是模仿Google官方mvp示例的小demo,结合Retrofit2.0,rxjava加上自己的一点理解所写....具体的代码细节以及RxJava与MVP的设计的结合,大家可以看GitHub上的源码,希望对大家有一些帮助.
Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins"); // 调用ObservableCreate的subscribeActual
一、RxJava 简介 1、RxJava 概念 RxJava 框架 是一个 异步编程函数库 , 包含了如下要素 : 观察者模式 迭代器模式 函数式编程 RxJava 框架应用场景 : 异步操作 事件流...2、RxJava 组成 - 被观察者 / 观察者 / 订阅 / 操作符 RxJava 组成要素 : Observable(被观察者): Observable 是一个 可以发送消息的数据源 , 可以同时发送若干消息...可以进行消息的 过滤、变换、合并、组合等操作 ; 3、RxJava 适用场景 RxJava 通过 组合调用 / 链式调用 被观察者 / 观察者 / 订阅 / 操作符 要素 ; RxJava 可以简化...RxJava 还支持 线程切换 / 并发处理 / 错误处理 ,利于处理各种 并发 和 异步 操作。...RxJava 异步编程库,蕴含了 响应式编程 思想 ,提供了 简洁、灵活和可组合 的方式 来 处理 异步任务 和 事件流。
RxJava Operators By Category Creating Observables 创建 Operators that originate new Observables.
前言: 现在面试很多都会问RxJava的源码,直接讲RxJava的源码,估计大家都不太会看下去,我们先看个小考题,然后再去看相关的源码。...isDisposed(); i++) { T value = a[i]; /*我们知道在RxJava 1的时候我们发送一个null值是可以的..., 但是RxJava2就不行了,因为做了一个判空操作。...而情形二其实不是考验RxJava的源码基础,而是考验 Java基础。...具体可以参考这篇:Java值传递以及引用的传递、数组的传递 结语: 所以本章我们更多地看了Rxjava的Observable生成及Observer订阅时候的部分源码及Java值传递等相关知识。
Rxjava四要素 被观察者 在Rxjava当中, 决定什么时候触发事件, 决定触发什么样的事件; 观察者 决定事件触发的时候将产生什么样的行为; 类似于传统观察者模式, 观察者会随着被观察者的状态变化而发生相应的操作...其中,其实Subscriber就是我们的观察者; 后面的Rxjava源码阅读中, 我们会发现Observer在源码中也会被转换成Subscriber来进行相应的处理, 所有才说其实Subscriber...第二步, 创建观察者Observer/Subscriber,即第二个要素, 1.在传统的观察者模式当中,观察者只有一个update()方法, 在其中根据被观察者的状态变化而做出反应/改变; 而在Rxjava...的一种简单的使用, 主要是理解一下Rxjava对传统观察者设计模式的拓展和改进; 实际情况当中,其实它还包括了很多操作符, 以及Rxjava最核心的线程控制调度, 这两部分是Rxjava的核心...package com.example.jiajiemu.a11.rxjava; import rx.Observable; import rx.Observer; import rx.Subscriber
有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: RxJava 到底是什么?...鉴于 RxJava 目前这种既火爆又神秘的现状,而我又在一年的使用过程中对 RxJava 有了一些理解,我决定写下这篇文章来对 RxJava 做一个相对详细的、针对 Android 开发者的介绍。...4) 场景示例 下面举两个例子: 为了把原理用更清晰的方式表述出来,本文中挑选的都是功能尽可能简单的例子,以至于有些示例代码看起来会有『画蛇添足』『明明不用 RxJava 可以更简便地解决问题』的感觉。...示例代码(Retrofit + RxJava): ? 传统的嵌套请求需要使用嵌套的 Callback 来实现。而通过flatMap(),可以把嵌套的请求写在一条链中,从而保持程序逻辑的清晰。...示例代码: ? 如上,在doOnSubscribe()的后面跟一个subscribeOn(),就能指定准备工作的线程了。 ---- 四、RxJava 的适用场景和使用方式 1.
作用 扫描,遍历,用法和上一个Reduce操作符差不多,只是这个操作符会将每一个过程的中间产物发射出来,而不是只发射结果 示例用法 这里举个例子,做一下累加计算 Observable.just(1,
the source ObservableSource is empty 仅发出源Observable的最后一个项目,如果源Observable为空或者被订阅的时候已经完成发送了,则发送默认item 示例用法
io.reactivex.rxjava3 rxjava 3.0.3
在 RxJava2.x 中,原先RxJava1.x的Schedulers.test()被去掉了,想要获得TestScheduler对象可以通过直接new TestScheduler()的方式来实现。...p=979 https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0
本章节中部分概念摘自《RxJava Essentials》一书 RxJava的来历 Rx是微软.Net的一个响应式扩展,Rx借助可观测的序列提供一种简单的方式来创建异步的,基于事件驱动的程序。...并于13年二月份正式向外展示了RxJava。 从语义的角度来看,RxJava就是.NET Rx。从语法的角度来看,Netflix考虑到了对应每个Rx方法,保留了Java代码规范和基本的模式。...什么是RxJava 那么到底什么是RxJava呢?我对它的定义是:RxJava本质上是一个异步操作库,是一个能让你用极其简洁的逻辑去处理繁琐复杂任务的异步事件库。...RxJava好在哪 Android平台上为已经开发者提供了AsyncTask,Handler等用来做异步操作的类库,那我们为什么还要选择RxJava呢?答案是简洁!...(此例子思路来源于扔物线的给Android开发者的RxJava详解一文) 使用RxJava的写法是这样的: 从上面这段代码我们可以看到:虽然代码量看起来变复杂了,但是RxJava的实现是一条链式调用,没有任何的嵌套
前言 通过前面五个篇幅的介绍,相信大家对RxJava的基本使用以及操作符应该有了一定的认识。但是知其然还要知其所以然;所以从这一章开始我们聊聊源码,分析RxJava的实现原理。...本文我们主要从三个方面来分析RxJava的实现: RxJava基本流程分析 操作符原理分析 线程调度原理分析 本章节基于RxJava1.1.9版本的源码 一、RxJava执行流程分析 在RxJava系列...2(基本概念及使用介绍)中我们介绍过,一个最基本的RxJava调用是这样的: 示例A Observable.create(new Observable.OnSubscribe() {...在分析源码前我们先看看一段常见的通过RxJava实现的线程调度代码: 示例C Observable.create(new Observable.OnSubscribe() { @...好了,我们最后再看看示例C对应的执行流程图,帮助大家加深理解。 总结 这一章以执行流程、操作符实现以及线程调度三个方面为切入点剖析了RxJava源码。
作者:aprz512 原文:http://lyldalek.cn/2018/01/06/RxJava-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%901/ 前言 本篇的文章是基于...Rxjava 2.1.2。...从下面的一段代码中,我们从源码的角度分析 RxJava 的实现原理: ObservableOnSubscribe oos = new ObservableOnSubscribe<Integer...AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.computation()) .subscribe(o); 分析源码之前,我们先定义一下名词,RxJava...如此,RxJava 的一个流程就理清楚了。这货的流程和 OkHttp 怎么有点像,只是稍微有点不一样。
1.RxJava在android中想要使用AndroidSchedulers.mainThread()这个线程,需要在你的gradle文件添加下面这个依赖 compile 'io.reactivex...:rxandroid:0.23.0' 2.RxLifecycle(GitHub地址)是一个方便我们在安卓中解除Rxjava中订阅,以防内存泄露问题的开源库.有几种写法,这里要注意根据你所使用的方式,添加合适的依赖...compile 'com.trello:rxlifecycle-components:0.4.0' compile 'com.trello:rxlifecycle-navi:0.4.0' 这里附上我用RxJava
程序输出: 通过转换操作符、过滤操作符、组合操作符三个篇幅将RxJava主要的操作符也介绍的七七八八了。更多操作符的介绍建议大家去查阅官方文档,并自己动手实践一下。
在异步调用时,RxJava 中有个缓存池,用来缓存消费者处理不了暂时缓存下来的数据,缓存池的默认大小为 128,即只能缓存 128 个事件。...backpress.PNG BUFFER 就是把 RxJava 中默认的只能存 128 个事件的缓存池换成一个大的缓存池,支持存很多很多的数据。...Subject 不支持背压,是 RxJava 1.x 继承过来的,Processor 继承 FlowableProcessor,支持背压。
前面说了RxJava 与Retrofit的基本用法,但是没用做优化的处理.本篇先做一个优化处理,然后再结合前面的MVP 设计模式,把这些知识贯穿到一个Demo 之中,方便大家理解....}); 接下来我要说的 就是MVP 设计模式 下 请求网络获取商品列表并展示的过程了 这个是效果图 就是请求网络并获取商品列表的功能 根据之前 MVP 设计模式,外加RxJava....client(client) .baseUrl(Constant.IP) .addCallAdapterFactory(RxJava2CallAdapterFactory.create
上一篇文章RxJava 线程模型分析详细介绍了RxJava的线程模型,被观察者(Observable、Flowable...)发射的数据流可以经历各种线程切换,但是数据流的各个元素之间不会产生并行执行的效果
领取专属 10元无门槛券
手把手带您无忧上云