get请求 post请求 文件上传 文件下载 开启日志拦截 与RxJava结合使用 什么是Retrofit2 官网是这么介绍的: Retrofit adapts a Java...= null) { return mService; } return null; } } 这样就生成了一个简单的代理类,然后就可以进行相应请求了...Get请求 一起来看看效果: 分析返回的 json数据,包含集合,那么我们可以进一步对接口返回值进行数据的封装。...vast.Store.manager.list") Call> getManagerDatas(@Query("StoreId") int id); 注意:我们这里对方法的返回值进行了一个修改...RxJava结合使用 添加库: compile 'io.reactivex:rxandroid:1.1.0' compile 'com.squareup.retrofit2:adapter-rxjava
而函数式编程是面向数学的抽象,将计算描述为一种表达式求值,函数可以在任何地方定义,并且可以对函数进行组合。响应式编程是一种面向数据流和变化传播的编程范式,数据更新是相关联的。...filepath=io/reactivex/rxjava2/rxjava/2.2.3/rxjava-2.2.3.jar // create a flowable Flowable...https://github.com/ReactiveX/RxJava 这可能是最好的RxJava 2.x 教程(完结版) - 简书 https://www.jianshu.com/p/0cd258eecf60...RxJava2 系列 (1):一篇的比较全面的 RxJava2 方法总结 - 掘金 https://juejin.im/post/5b72f76551882561354462dd 给 Android...开发者的 RxJava 详解 https://gank.io/post/560e15be2dca930e00da1083 RX操作符之Observable的创建方式二(defer、range、interval
传统写法,通常是中规中矩的封装2个方法,依次调用。用rxjava后,可以写得更流畅,先做点准备工作: ?...上面的代码,都没考虑到出错的情况,如果支付时出异常了,rxjava如何处理呢?...; } } rxjava里有一个重载版本,见: io.reactivex.Observable @CheckReturnValue @SchedulerSupport("none...如果想在订单创建完后,先做些处理,再进行支付,可以这么写: @Test public void test4() throws Exception { OrderService...orderDesc=iphone X, orderAmount=8888) 订单创建完成:CreateOrderResponse(orderNo=8c194b1d07c044a8af3771159e1bb2bf
1.去重 Flowable.just(1, 1, 1, 2, 2, 3, 4, 5) .distinct() .subscribe...每次用一个方法处理一个值.这里是两两相加 Flowable.just(1, 2, 3, 4) .reduce(new BiFunction<Integer, Integer..."accept: reduce : " + integer + "n"); } }); 3.跳过 count 个数目开始接收 Flowable.just(1, 2,...它和 concat 的区别在于,不用等到 发射器 A 发送完所有的事件再进行发射器 B 的发送 Flowable.merge(Flowable.just(1, 2), Flowable.just(3,...; String[] words2 = {"Hello,", "I am", "Beijing!"}
RxJava2 使用 private void analyzeRxJava(){ Observable.create(new ObservableOnSubscribe<String>...Null values are generally not allowed in 2.x operators and sources....Null values are generally not allowed in 2.x operators and sources....Null values are generally not allowed in 2.x operators and sources....发射器释放了,就清空队列 2. 出现错误一样操作,然后退出 3.
(2)Qzone引入的RxJava 1.1.2。 为了知其然,知其所以然,下面从入门开始对最受欢迎的响应式框架RxJava进行研究。...本文将简单展示如何使用 RxJava 2 进行Android开发。...本系列文章不止为 RxJava 新手提供指导,如果你是 RxJava 1 的老司机并希望与时俱进地转到 RxJava 2 ,那么本文会使你转换的过程更加顺利。...虽然升级到最新版本的库可能听起来没那么复杂,但 RxJava 2 并不是简单的update,而是 RxJava 的完整重写。因此伴随着巨大的变化,会带来很多困惑。...三、将RxJava添加到Android Studio(略) 任何含有rx包名的代码都是 RxJava 1 代码,与 RxJava 2 不兼容。
RxJava2介绍 RxJava是通过事件传递,并且在传递过程中对事件内部数据进行修改,最终发送给接收者的响应式框架。 借助某个同学的一张图可以更直观的了解: ?...RxJava事件流向 上图只是在同个线程中,可以让事件携带数据按顺序从上层流转到下层。而在事件流转的过程中,RxJava提供了很多操作符可以对源头事件进行处理再往下传递。...RxJava2的优势 书写简便,没有层层回调 流式调用,可以简单的看出来整个过程 操作符非常强大,可以在事件流转中间进行各种处理 可以保证多线程之间事件的顺序(不过数据同步需要自己保证) RxJava2...的配置 在Module中引入即可: compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid...:2.0.1' RxJava2中基本类介绍 Observable:一个可被subscribe的对象,也可以理解成被监听的对象,而该对象中保存着一个名为ObservableEmitter的对象,ObservableEmitter
看大神用沙县小吃教你理解RXJAVA2 作者:HuYounger 博客:http://rkhcy.github.io/ 文章目录 前言 例子 源码分析 0 前言 从这篇文章开始,系统地学习RxJava2...1 例子 通过生活中的几个角色来学习RxJava2:饭店、厨师、服务员、顾客。 ?...上面的漫画写成RxJava2就是很多入门文章中看到的:事件发起者(上游) ? 事件接收者(下游) ? 建立联系 ? 打印如下: ? 下面把一些类代入角色结合源码分析,演员表 ?...2 源码分析 最初看源码的时候容易因为各个类名字起得很相似看晕,因此先把涉及到的类之间的关系画出来 ?...顾客没有什么套路,上菜就吃(onNext),菜上完或菜出问题会有相应的提醒(onComplete/onError),对应上面漫画2。
当每次调用了observableOn这个操作符时,之后都会在选择的调度器上进行观察,直到再次调用observableOn切换了调度器。
作者:HuYounger 博客:http://rkhcy.github.io/ 文章目录 概述 例子 源码分析 多次subscribeOn 最后 0 概述 接着《图解RxJava2(一)》这一片讲讲在...RxJava 中可以通过 subscribeOn/observeOn 很方便地完成上下游指定线程的切换,日常开发除了一些常用的Rx 操作符外,这两个方法也是打交道最多的。...可以看到,由于上游耗时,导致主线程中「其他任务」被阻塞了,因此需要新建一个子线程来处理上游的耗时任务,使用 RxJava 的 subscribeOn 就能轻松实现,修改代码: ? 打印如下: ?...Schedulers.newThread() Scheduler 翻译为调度器,RxJava2 中 Scheduler 的一些常用子类如下: ?...之后所有的事情都是在子线程中进行的,上篇已经分析过了 ?
今天有肯德基 作者:HuYounger 博客:http://rkhcy.github.io/ 文章目录 概述 例子 源码分析 多次observeOn 0 概述 上篇文章只分析了 RxJava 中...在日常开发中往往是将上游耗时任务通过 subscribeOn 指定在子线程中,下游通常是更新 UI 等需要在主线程中进行,使用 observeOn(AndroidSchedulers.mainThread...2 源码分析 ?...在上篇介绍到这的时候说,接下来的操作都是在子线程中进行的,那此时这里会有什么转折呢? ?...这里会创建小强(ObserveOnObserver),为了和后面区分开,就叫他2号店小强,2号店小强持有小明的引用,之后执行肯德基1号店的 subscribeActual ,observer 是肯德基2
1.设置呼叫中心拨号计划 呼叫中心建立tiers。...xml方式添加,在callcenter.conf.xml:未测试 <agent name="a030f2bc-b105-43f2-beef-a4625dda422e" label="...CUSTOM" subclass="callcenter::info" script="aphero/callcenter_event.lua"/> 绑定CUSTOM事件中的callcenter::info呼叫中心子类...att_xfer" data="user/${digits}@${domain_name}"/> 按【*4】听到拨号音,输入第三方号码+#后,开始呼叫
Retrofit的使用 先简单介绍一个网络请求的例子,注解之类的放在后面去说 (1) 添加Retrofit库的依赖 implementation "io.reactivex.rxjava2:rxjava...:2.2.0" implementation "io.reactivex.rxjava2:rxandroid:2.0.2" implementation 'com.squareup.retrofit2...:retrofit:2.3.0' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' implementation...HEAD分别对应 HTTP中的网络请求方式 @HTTP替换@GET、@POST、@PUT、@DELETE、@HEAD注解的作用 及 更多功能拓展 具体使用:通过属性method、path、hasBody进行设置...(RxJava2CallAdapterFactory.create() 这个是用来决定你的返回值是Observable还是Call 如果返回为Call那么可以不添加这个配置。
作为github上star数极高的响应式编程java扩展类库,rxjava是啥就不多说了,网上能查到一堆介绍,下面是一些学习记录: 前提依赖: compile 'io.reactivex.rxjava2...:rxjava:2.1.9' 一、Observable 1.1 hello world rxjava中的核心思路是“生产者-消费者”模型,生产者的java类通常用xxxEmitter命名,字面意思:发射器...不过要注意的是:rxjava中,能接收子弹的靶子,可以同时有多个。...c complete 注:最后一行,也可以改成 observable.subscribe(observer1); observable.subscribe(observer1); 这样就相当于2个靶子在接子弹了....subscribe(c -> System.out.print(c + " ")); 输出: I Am Chinese 参考: http://www.vogella.com/tutorials/RxJava
前言 继续上篇的Rxjava2的入门实例,把剩下的运用Rxjava的实例讲下,首先要说名下本文会用到Rxbinding的知识,他相当于Rxjava的辅助工具,在引入他的时候会自动帮我们引入Rxjava,...在这里我把依赖写下 compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0' 这个版本默认引入的是Rxjava2.0.2的版本 ---- Rxjava2的操作符...create just fromArray map flatMap zip filter time merge retry retryWhen range Interval ... ---- Rxjava2...和zipWith,其实2者差不多只是参数不一样。...推荐文章: Rxjava2 RxJava2操作符 RxJava/RxAndroid 使用实例实践 Rxjava2我觉得关于rxjava2这个系列真的非常好很值得学习 代码地址
转载自:Rxjava2入门教程五:Flowable背压支持——对Flowable最全面而详细的讲解 背压介绍 当上下游在不同的线程中,通过Observable发射,处理,响应数据流时,如果上游发射数据的速度快于下游接收处理数据的速度...{ // 累加到2 s?.
此博文根据前面两篇文章 Android MVP 架构初试 Android MVP 架构封装 再结合主流框架Retrofit2+Rxjava来个实践(实现聚合网周公解梦) 源码地址RxMVP 项目截图...Retrofit2+Rxjava 封装 JuHeService 数据请求接口 /** * 请求示例: * http://v.juhe.cn/dream/query * q:梦境关键字,如:黄金 需要...super(detailMessage); } /** * 由于服务器传递过来的错误信息直接给用户看的话,用户未必能够理解 * 需要根据错误码对错误信息进行一个转换...message = "未知错误"; } return message; } } BaseMvp封装 请参考上篇文章 Android MVP 架构封装 Retrofit2+...Rxjava+MVP实践 MvpView public interface MvpView extends BaseView { //ListView的初始化 void setListItem
subscribe(s -> System.out.println(s)); } zip字面意义,就是打包操作,把多个Obserable合并在一起,形成一个新的Obserable,类似文件1、文件2...-> (Integer) i1 + (Integer) i2) //1个数字+0,不影响原值 .subscribe(integer -> System.out.println...(200); 输出: A0 A1 A2 A3 A4 三、Flowable 刚才用zip这种"奇淫技巧"实现了限流,但其实rxjava还有更科学的做法(Flowable)。...rxjava就是这么体贴,你想到的,它也想到了。...,相当于消费者在订阅时,告诉生产者,只能处理2条记录。
前言 最近在学习Rxjava2,虽然在实际的项目中使用也看了很多的文章和文档,学会的了如何使用但是忘记的很快,也没有很好的总结,在学习的时做的笔记过了一段时间发现自己做的笔记都有些看不明白,作为小白的我写博客还是有点胆战心惊的...,这篇博客的主要的目的是引导没有了解过Rxjava的人一个参考,讲一些简单的原理和常用操作符及使用场景,可能会有错误希望大家多多指教批评,去其糟粕取其精华,那么开始学习之旅吧。...image 这是我们常见手机应用软件的截图这是两个不同的页面,2个页面下载进度同步,其实我们就可以使用观察者模式,下载任务为被观察者页面(Activity或者Fragment)为观察者(实现接口,参数将...结语 这篇文章主要是讲解什么观察者模式,虽然本文是Rxjava小白入门,但是讲下观察者模式还是有必要的。...下篇文章我会简单讲解下java中的观察者模式和Rxjava的简单使用。
那么这节课我们主要讲解Rxjava2的基本使用和操作符。其实网上的关于Rxjava2的优秀文章有很多对我来说都是受益匪浅。...这篇我们主要是讲解Rxjava2的简单用法已经场景 ---- 首先我们先在我们的项目中添加依赖 compile 'io.reactivex.rxjava2:rxjava:2.0.0-RC5' compile...'io.reactivex.rxjava2:rxandroid:2.0.0-RC1' 这是我使用的Rxjava2版本最新的请查阅官网 RxJava: https://github.com/ReactiveX...最后我们通过subscribe将2者关系进行订阅(注意只有订阅的时候才会发送数据)。从打印的中我们可以发现对应的Observer也有相对应的3个方法。...我认为Rxjava2的强大之处就在与它有很多的操作符可以根据业务逻辑的需求通过Rxjava2链式不断的变化来满足我们的需求,另一个就是它可以制定任意Observer和Observa的业务逻辑在那个线程中执行