具体实现 此处采用Merge() & Zip()操作符进行讲解,其中: Merge()例子 :实现较为简单的从(网络 + 本地)获取数据 & 统一展示 Zip()例子:结合Retrofit 与RxJava...地址 // Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit...对象里的URL可以忽略 // 采用Observable<......"; // 定义Observable接口类型的网络请求对象 Observable observable1; Observable...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com
具体实现 此处采用` Merge()` & `Zip()`操作符进行讲解,其中: Merge()例子 :实现较为简单的从(网络 + 本地)获取数据 & 统一展示 Zip()例子:结合Retrofit...地址 // Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit...对象里的URL可以忽略 // 采用Observable<......"; // 定义Observable接口类型的网络请求对象 Observable observable1; Observable...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com
RxJava + Retrofit 前言 本文基于RxJava、Retrofit的使用,若是对RxJava或Retrofit还不了解的简友可以先了解RxJava、Retrofit的用法再来看这篇文章。...Observable...是不是觉得很熟悉,这货不就是之前在RxJava使用到的被监听者? 3、使用Observable完成一个网络请求,登录成功后保存数据到本地。...(MyService.class); service.login(phone, password) //获取Observable对象...可以看到,调用了service的login方法后得到Observable对象,在新的线程中执行网络请求,请求成功后切换到io线程执行保存用户信息的动作,最后再切换到主线程执行请求失败onError()、...使用RxJava + Retrofit来完成这样的请求(借用抛物线的例子,稍微做了点改动) //登录,获取token @GET("/login") public Observable
今天,我将为大家带来 Rxjava创建操作符的实际开发需求场景:网络请求出错重连需求 ,并结合Retrofit 与RxJava 实现,希望大家会喜欢。...compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com/"
观察者模式 假设现在有两个对象A和B,在A发生某种变化时要主动通知B。这就是观察者模式。...RxJava的观察者模式 RxJava基本概念:Observable (被观察者,相当于View)、 Observer (观察者,相当于OnClickListener)、 subscribe ()(订阅...(最新版),在这里我们再简单温习下 创建WeatherInfoService,并制定请求数据的方式以及需要的查询参数 创建相应的WeatherInfoBean 创建Retrofit对象并使用GSON解析数据...调用 weatherInfoService#getWeatherInfo(FORMAT, CITYNAME, KEY),获取call 插入队列,并展示数据 RxJava/RxAndroid结合Retrofit...MainActivity#getWeatherInfoByFlatMap() 使用.map方法只能返回一个值,属于一对一类型。RxJava给我们提供一个更神奇的方法.flatMap()。
compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com/"...总结 本文主要讲解了 Rxjava创建操作符的实际开发需求场景:网络请求出错重连需求 ,并结合Retrofit 与RxJava 实现 下面我将结合 实际场景应用 & Rxjava的相关使用框架(如Retrofit
今天,我将为大家带来 Rxjava创建操作符的实际开发需求场景:有条件的轮询需求 ,并结合Retrofit 与RxJava 实现,希望大家会喜欢。...compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...对象 Retrofit retrofit = new Retrofit.Builder()
RxJava + Retrofit Retrofit 除了提供了传统的 Callback 形式的 API,还有 RxJava 版本的 Observable 形式 API。...下面我用对比的方式来介绍 Retrofit 的 RxJava 版 API 和传统版本的区别。 以获取一个 MovieEntity 对象的接口作为例子。...start, @Query("count") int count);//RxJava返回Observable对象 Retrofit本身对Rxjava提供了支持,getMovie方法改为: //进行网络请求...; movieService.getTopMovie(0, 10)//返回Observable对象 .subscribeOn(Schedulers.io...,你就会发现RxJava的魅力所在;如果看一遍没有看懂的童鞋,建议多看几次;动手写写代码,我想信本文可以给到你们一些帮助;你们真正的体会到什么是 从入门到放弃再到不离不弃 ;这就是RxJava的魅力所在
// Android 支持 Retrofit compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava //...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...对象 Retrofit retrofit = new Retrofit.Builder()...总结 本文主要讲解了 Rxjava创建操作符的实际开发需求场景:有条件轮询需求 ,并结合Retrofit 与RxJava 实现 下面我将结合 实际场景应用 & Rxjava的相关使用框架(如Retrofit
& 发送事件 // 在主线程创建被观察者 Observable 对象 // 所以生产事件的线程是:主线程 Observable observable...compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com/"...Carson带你学Android:功能防抖 Carson带你学Android:从磁盘/内存缓存中获取缓存数据 Carson带你学Android:联合判断
+ Retrofit ,所以我相关的源码解析都是配合RxJava来的,而不是Call返回对象。...这个图画的很好,但是这个图更多的是从大局观来看,所以如果对于源码不是有一些基础了解的话,看这个图很容易就忘记。...") Observable getInfo(@Query("name") String nameStr); } 复制代码 那我们要拿到: path值:上面创建Retrofit...我们拿到包含了这些红色框参数的ServiceMethod对象后,加上我们传入的绿色的框的nameStr的具体的值,我们已经可以进行网络Request请求的所必要的参数了 (另外一个绿色的框只是用来最后网络请求成功后拿到的...//'我们可以看到上面根据是否异步,建立不同的Observable对象,我们用复杂点的来讲解吧, 就当我们建立的时候使用的是RxJava2CallAdapterFactory.createAsync
最后我们看到,这个方法最终返回的是一个Retrofit的对象,初始化完成。...首先一开始先获取几个重要对象:callAdapter、responseType和responseConverter,这三个对象都跟最后的结果有关,我们先不管。...的Request,最终发起网络请求 总结 Retrofit主要是在create方法中采用动态代理模式实现接口方法,这个过程构建了一个ServiceMethod对象,根据方法注解获取请求方式,参数类型和参数注解拼接请求的链接...这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。 Retrofit Retrofit是一个RESTful的Http网络请求框架的封装。...而且Retrofit提供不同的Converter实现(也可以自定义),同时提供RxJava支持(返回Observable对象),配合Gson和RxJava,你可以用很少的代码就实现请求、返回数据解析和操作等功能
:传统方式采用了 Callback 接口,而RxJava 方式则采用了Observable接口。...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com/"...2个服务器发送网络请求 ->> 获取数据 ->> 合并数据 ->> 统一展示到客户端 具体实现 具体请看文章:Android RxJava 实际应用讲解:合并数据源 至此,关于Retrofit
两种方式在使用上最大的区别在于:传统方式采用了 Callback 接口,而RxJava 方式则采用了Observable接口。...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com/"...功能说明 即,同时向2个服务器发送网络请求 ->> 获取数据 ->> 合并数据 ->> 统一展示到客户端 具体实现 具体请看文章:Android RxJava 实际应用讲解:合并数据源 至此,关于
今天,我将为大家带来 Rxjava创建操作符的常见开发应用场景:轮询需求 ,并结合Retrofit 与RxJava 实现,希望大家会喜欢。...compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl
compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...a=fy&f=auto&t=auto&w=hello%20world // 参数说明: // a:固定值 fy // f:原文内容类型,日语取 ja,中文取 zh,英语取 en,韩语取 ko,德语取...// Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit对象里的...// 参数2 = 间隔时间数字; // 参数3 = 时间单位; // 该例子发送的事件特点:延迟2s后发送事件,每隔1秒产生1个数字(从0...创建Retrofit对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl
关于RxJava可以说的很多,但是要想了解RxJava的核心,只有从操作符去切入。 上一篇我们介绍了通用的Operator,像just/merge/filter。...看定义不如看代码,下面是之前通过网络获取天气情况的demo中的代码,用的是 Retrofit + RxJava, Observable.from(cities) .flatMap(new...} }); 上面就是用map改造后的样子,observer接收到的就直接是String对象。...注意这里说的是他们的参数 Func1 在返回值上的差异,不要搞成map和flatmap的返回值了,这俩的返回值都一样。...源码可以后台回复"操作符"获取。
compile 'com.squareup.retrofit2:retrofit:2.1.0' // 衔接 Retrofit & RxJava // 此处一定要注意使用RxJava2的版本 compile...地址 // Retrofit把网络请求的URL分成了两部分:一部分放在Retrofit对象里,另一部分放在网络请求接口里 // 如果接口里的url是一个完整的网址,那么放在Retrofit...对象里的URL可以忽略 // 采用Observable<......"; // 定义Observable接口类型的网络请求对象 Observable observable1; Observable...对象 Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://fy.iciba.com
的代理对象。...4、RxJava与CallAdapter 说到Retrofit就不得说到另一个火到不行的库RxJava,网上已经不少文章讲如何与Retrofit结合,但这里还是会有一个RxJava的例子,不过这里主要目的是介绍使用...提供了多个CallAdapter,这里以RxJava的为例,用Observable代替Call: 引入RxJava支持: compile 'com.squareup.retrofit2:adapter-rxjava...Observable 代替Observable,这里的Result是指retrofit2.adapter.rxjava.Result,这个Result中包含了Response的实例值类型的泛型参数就会由我们的StringConverter处理,不管是Call还是Observable 有没有很简单?如果你有其它的需求处理的就自己实现吧。