//butterknife 绑定视图依赖BindView,告别findById,不过你还得安装一个butterknife插件才行 api 'com.jakewharton:butterknife...:okhttp:3.8.1' api 'com.squareup.retrofit2:retrofit:2.4.0' api 'com.squareup.retrofit2:converter-gson....Retrofit; import retrofit2.converter.gson.GsonConverterFactory; /** * 服务构建器 API服务设置在里面 */ public...是对OkHttp的进一步封装 .build(); return retrofit.create(serviceClass);//返回这个创建好的API服务...api包,在这个包下新建一个ApiService接口 ① 创建API管理服务接口ApiService ?
视图View:Activity和Fragment 逻辑Presenter:业务逻辑和业务管理类等 模型Model:SharedPreferences、数据库访问(Dao)和网络交互(Api) 二、Modulize...Retrofit接口访问实例, public class ServiceGenerator { private static final String API_SERVICE = "http:/...基于Retrofit的登录Api如下: public interface LoginApi { /** * user login * * @param username...LoginModel Model中持有Retrofit实例(api)、数据库访问对象(Dao)以及SP等本地存储对象: public class LoginModel extends BaseModel...Attach BaseView后通过mView.onViewEvent()对View进行界面回调处理,View中根据事件code和参数param进行视图处理。
Activity和Fragment) ⑧ 创建net包(封装OKHttp,重写CallBack) 5. app使用MVP ① 创建API管理服务接口ApiService ② 订阅接口服务,处理API请求返回数据...//butterknife 绑定视图依赖BindView,告别findById,不过你还得安装一个butterknife插件才行 api 'com.jakewharton:butterknife...:okhttp:3.8.1' api 'com.squareup.retrofit2:retrofit:2.4.0' api 'com.squareup.retrofit2:converter-gson...是对OkHttp的进一步封装 .build(); return retrofit.create(serviceClass);//返回这个创建好的API服务...修改后的MainActivity代码如下所示 package com.llw.goodweather; import android.Manifest; import android.graphics.Typeface
今天,我将为大家带来 Rxjava创建操作符的实际开发需求场景:网络请求出错重连需求 ,并结合Retrofit 与RxJava 实现,希望大家会喜欢。...具体实现 下面,我将结合 Retrofit 与RxJava 实现 网络请求出错重连 功能 3.1 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于Retrofit...传统形式) 创建 Retrofit 实例 创建 网络请求接口实例 并 配置网络请求参数(区别于Retrofit传统形式) 发送网络请求(区别于Retrofit传统形式) 发送网络请求 对返回的数据进行处理...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建 接收服务器返回数据...总结 本文主要讲解了 Rxjava创建操作符的实际开发需求场景:网络请求出错重连需求 ,并结合Retrofit 与RxJava 实现
比如,何时获取第一页数据,以及何时开始加载数据等待。并且,DataSource数据源都将通过PageList设置给PagedListAdapter。...//省略get和set } } 然后,为了完成网路请求,我们需要按照Retrofit的使用方式新建一个Api,用于统一管理请求接口,如下所示。...public interface Api { //开源API:http://gank.io/api/search/query/listview/category/Android/count/10...需要同样大小的项视图:如果列表项大小会随着内容而变(例如社交网络更新),则项之间的交叉渐变效果并不理想。在这种情况下,我们强烈建议停用占位符。...2.6 加载分页数据 经过上面的处理后,接下来只需要在Activity中进行数据的请求和绑定即可,如下所示。
今天,我将为大家带来 Rxjava创建操作符的实际开发需求场景:网络请求出错重连需求 ,并结合Retrofit 与RxJava 实现,希望大家会喜欢。...具体实现 下面,我将结合 Retrofit 与RxJava 实现 网络请求出错重连 功能 3.1 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于Retrofit...传统形式) 创建 Retrofit 实例 创建 网络请求接口实例 并 配置网络请求参数(区别于Retrofit传统形式) 发送网络请求(区别于Retrofit传统形式) 发送网络请求 对返回的数据进行处理...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建 接收服务器返回数据...总结 本文主要讲解了 Rxjava创建操作符的实际开发需求场景:网络请求出错重连需求 ,并结合Retrofit 与RxJava 实现 下面我将结合 实际场景应用 & Rxjava的相关使用框架(如Retrofit
通过该例子,可以学习如何将Retrofit和RxJava结合,并通过zip操作符实现等待多个网络请求完成。...中声明必要的网络权限: android:name="android.permission.INTERNET"/> 2.4 定义 Retrofit 需要的请求接口...private Observable getObservable(String category, int page) { NewsApi api = new Retrofit.Builder...它接收一个Function函数,对于上游发送的每个事件它都会应用该函数,这个函数返回一个新的Observable,如果有多个Observable,那么他会发送合并后的结果。...通过zip操作符,我们就可以实现等待多个网络请求完成再返回的需求,例如在上面的例子中,我们会等待Android和iOS类的资讯请求都返回之后,再合并它们的结果发送给下游,在界面上展示。
Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP 项目截图 这是我的目录结构 五步使用RxJava+Retrofit2+Okhttp+RxCache 第一步:导包...后使用build设计模式 mRetrofit = new Retrofit.Builder() //设置服务器路径...Android中也可以说采用了当前比较流行的MVC框架,在Android中: 1) 视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入,但是用xml编写了,又需要在...随着项目的迭代更新,这对开发很不友好,耦合度也原来越高,项目越来越难维护,而MVP 就是解决这样的痛点。...MVP的优点: 模型与视图完全分离,我们可以修改视图而不影响模型 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部 我们可以将一个Presenter用于多个视图
Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP 项目截图 这是我的目录结构 五步使用RxJava+Retrofit2+Okhttp+RxCache...后使用build设计模式 mRetrofit = new Retrofit.Builder() //设置服务器路径...Android中也可以说采用了当前比较流行的MVC框架,在Android中: 1) 视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入,但是用xml编写了,又需要在...随着项目的迭代更新,这对开发很不友好,耦合度也原来越高,项目越来越难维护,而MVP 就是解决这样的痛点。...MVP的优点: 模型与视图完全分离,我们可以修改视图而不影响模型 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部 我们可以将一个Presenter用于多个视图,而不需要改变
:采用Get方法对 金山词霸API 发送网络请求 先切换到工作线程 发送网络请求 再切换到主线程进行 UI更新 ?...4.2 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于传统形式) 创建 Retrofit 实例 创建 网络请求接口实例 并 配置网络请求参数(区别于传统形式)..."/> 步骤2:创建 接收服务器返回数据 的类 金山词霸API 的数据格式说明如下: // URL模板 http://fy.iciba.com/ajax.php // URL实例 http://fy.iciba.com...根据 金山词霸API 的数据格式,创建 接收服务器返回数据 的类: Translation.java public class Translation { private int status;...如 先进行 用户注册 的网络请求, 待注册成功后回再继续发送 用户登录 的网络请求 冲突 嵌套实现网络请求较为复杂,即嵌套调用函数 下面展示的是结合 Retrofit 与 RxJava
前言 在Andrroid开发中,网络请求十分常用,而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 Retrofit之所以作为现在最流行的网络请求库,其中一个主要原因是:支持...基础使用 下面,我将采用最基础的 Retrofit + RxJava 实现 网络请求 的功能 4.1 功能说明 实现功能:将中文翻译成英文 - > 显示到界面 实现方案:采用Get方法对 金山词霸API...发送网络请求 先切换到工作线程 发送网络请求 再切换到主线程进行 UI更新 4.2 步骤说明 添加依赖 创建 接收服务器返回数据 的类 创建 用于描述网络请求 的接口(区别于传统形式) 创建 Retrofit...添加 网络权限 AndroidManifest.xml android:name="android.permission.INTERNET"/> 步骤2:创建 接收服务器返回数据...5.3 网络请求嵌套回调 背景 需要进行嵌套网络请求:即在第1个网络请求成功后,继续再进行一次网络请求 如 先进行 用户注册 的网络请求, 待注册成功后回再继续发送 用户登录 的网络请求 冲突
/> * 邮箱:1981462002@qq.com * 说明:控制层 */ public interface IPresenter { /** * 根据所属区域更新视图...count 查询条数 */ void updateByArea(String area, int offset, int count); /** * 根据查询名称更新视图...:8089/api/android/note/area/A/12/12 ----按部分名称查询 http://192.168.43.60:8089/api/android/note/name/材料 http...://192.168.43.60:8089/api/android/note/name/材料/2/2 ----按类型名称查询(类型定义表见第一篇) http://192.168.43.60:8089/api...:8089/api/android/note/12 添-POST请求:http://192.168.43.60:8089/api/android/note /** * 作者:张风捷特烈 *
一、概述 Retrofit是Square公司开发的一个类型安全的Java和Android 的REST客户端库。...来自官网的介绍: A type-safe HTTP client for Android and Java Rest API是一种软件设计风格,服务器作为资源存放地。...SynchronousQueue每个插入操作必须等待另一个线程的移除操作,同样任何一个移除操作都等待另一个线程的插入操作。...android:name="android.permission.INTERNET"/> 创建实体类 这是使用Gson解析,需要创建一个POJO(Java对象)。...网络请求Service,@Path、@Query、@QueryMap 创建访问API的请求(核心用法三) NewsService api = retrofit.create(NewsService
第二种是动态注册,而动态注册的话,是在代码中注册的,这种注册方式也叫非常驻型广播,收到生命周期的影响,退出页面后,就不会收到广播,我们通常运用在更新UI方面。这种注册方式优先级较高。...第三步:OnDraw():绘制视图。ViewRoot创建一个Canvas对象,然后调用OnDraw()。...17、Handler的原理 Android中主线程是不能进行耗时操作的,子线程是不能进行更新UI的。所以就有了handler,它的作用就是实现线程之间的通信。...)可在Android studio下方Mirror工具检测 API设计:App与Server之间的API设计要考虑网络请求的频次, 资源的状态等....**Retrofit:**Retrofit是Square公司出品的默认基于OkHttp封装的一套RESTful网络请求框架,RESTful是目前流行的一套api设计的风格, 并不是标准。
第二种是动态注册,而动态注册的话,是在代码中注册的,这种注册方式也叫非常驻型广播,收到生命周期的影响,退出页面后,就不会收到广播,我们通常运用在更新UI方面。这种注册方式优先级较高。...第三步:OnDraw():绘制视图。ViewRoot创建一个Canvas对象,然后调用OnDraw()。...17、Handler的原理 Android中主线程是不能进行耗时操作的,子线程是不能进行更新UI的。所以就有了handler,它的作用就是实现线程之间的通信。...Retrofit:Retrofit是Square公司出品的默认基于OkHttp封装的一套RESTful网络请求框架,RESTful是目前流行的一套api设计的风格, 并不是标准。...,然后再处理回调。
View 还是视图,例如Activity、Fragment等。 Intent 意图,这个和Activity的意图要区分开,我觉得说成是行为可能更妥当,表示去做什么。...(MoshiConverterFactory.create(moshi)) .build() /** * 创建Api网络请求服务 */ val apiService...作为网络接口请求的地址头,然后构建了MoShi,通过MoShi去进行JSON转Kotlin数据类的处理,之后就是构建Retrofit,将MoShi设置进去,最后就是通过Retrofit创建一个网络请求服务...已经被移除了,在之前的版本中是过时弃用,在最新的版本中你都找不到这个API了,所以使用ViewModelProvider(),然后通过ViewModelFactory去创建对应的MainViewModel...这样就完成了通过状态更新UI的环节,MVI的框架就是这样设计的。
代码被划分为两层结构:Data Layer(数据层)负责从REST API或者持久数据存储区检索和存储数据;View Layer(视图层)的职责是处理并将数据展示在UI上。...方法(回调) 等待CacheProvider的回调结果,然后将这些文章展示到ListView等列表视图上 分别处理APIProvider和CacheProvider回调中潜在的异常。...Retrofit services:执行访问REST API,我们现在使用Retrofit来代替Volley,因为它天生支持RxJava。而且也更好用。...比如DataManager中的退出登录方法可以发送一个事件,订阅这个事件的多个Activity在接收到该事件后就能够更改它们的UI视图,从而显示一个登出状态。 为什么这种架构更好?...集成MVP 在过去的一年中,几个架构设计模式,如MVP或者MVVM在Android社区内已经越来越受欢迎了。通过在示例工程和文章中进行探索后,我们发现MVP,可能给我们现有的架构带来非常价值的改进。
来源: 小鄧子(@Rx小鄧子) Android开发生态圈的节奏非常之快。每周都会有新的工具诞生,类库的更新,博客的发表以及技术探讨。...代码被划分为两层结构:Data Layer(数据层)负责从REST API或者持久数据存储区检索和存储数据;View Layer(视图层)的职责是处理并将数据展示在UI上。...) 等待CacheProvider的回调结果,然后将这些文章展示到ListView等列表视图上 分别处理APIProvider和CacheProvider回调中潜在的异常。...Retrofit services:执行访问REST API,我们现在使用Retrofit来代替Volley,因为它天生支持RxJava。而且也更好用。...比如DataManager中的退出登录方法可以发送一个事件,订阅这个事件的多个Activity在接收到该事件后就能够更改它们的UI视图,从而显示一个登出状态。 为什么这种架构更好?
创建返回实体 2. 创建ApiService 3. 创建数据存储 4. 项目环境配置 5....网络请求服务 前面的3步操作都属于准备环节,核心的地方在这里,也就是创建网络服务,这里会将OKHttp、Retrofit、RxJava串起来,在network包下新建一个NetworkApi类,里面的代码如下...(BASE_URL); //设置OkHttp客户端,传入上面写好的方法即可获得配置后的OkHttp客户端。...创建ApiService 在com.llw.mvvm包下新建一个api包,api包下新建一个ApiService类,代码如下: /** * 所有的Api网络接口 * @author llw *...ViewModel,ViewModel更新则xml更新 mainViewModel.biying.observe(this, biYingImgResponse -> dataBinding.setViewModel
1 取消订阅 一般我们在视图消亡后,无需RxJava再执行,可以直接取消订阅 subscription.unsubscribe() //取消发生在IO线程 observable.unsubscribeOn...Schedulers.io()); 可用在activity的 onDestroy(), Fragment的 onDestroyView()中调用 还有种场景是借助rxJava请求网络数据,需要网络返回后保存数据并更新...UI,这种情况视图已经消亡了必定会导致rxJava出错,导致App闪退,这种我们可以判断前的activity/view是否为空,并是否已showing,如果 两者都不存在,即可无须更新UI。...2 订阅问题 需要UI绘制后再进行订阅的场景,防止阻塞UI,我们需要延迟订阅执行。...是时候客观评价Retrofit了,这几点你必须明白 Android基于Retrofit2.0 封装的超好用的RetrofitClient工具类 你不知道的Retrofit缓存库RxCache 技术
领取专属 10元无门槛券
手把手带您无忧上云