,,Android Retrofit框架的使用

,,Android Retrofit框架的使用

这篇文章主要介绍了安卓改造框架的使用,帮助大家更好的理解和学习使用安卓系统,感兴趣的朋友可以了解下

目录

改装介绍

加装优点

加装的使用

1.引入依赖项

2.添加网络权限3.编写加装辅助类

4.定义养蜂服务

5.实现接口方法

加装介绍

加装是平方开源的一款基于OkHttp(也是他家的)封装的网络请求框架,主要的网络请求还是OkHttp来完成,改装只是对OkHttp进行了封装,可以让我们更加简单方便的使用,目前大部分公司都在使用这款框架,改装的原理也是面试必问的问题之一了,所以我们不仅要会使用,也要对其实现原理有一个大概的了解。

本片文章从使用角度来说,不对的地方希望大家在评论区交流,我会及时改进,共同进步,文章中的演示可以从开源代码库下载。

加装优点

加装的大部分配置是通过注解来实现的,配置简单,使用方便;支持多种返回类型包括RxJava和协程,可以配置不同的解析器来进行数据解析,如Json,xml等

加装的使用

以下代码全部为科特林语言编写,毕竟现在科特林也是大势所趋了。

1.引入依赖项

开源代码库地址:github.com/square/retr…

实施" com.squareup.retrofit2:改装:2.9.0"

//支持Gson解析json数据

实现“通讯器。摆好架势。改装2:转换器-gson:2。9 .0"

//支持RxJava返回类型

实现“通讯器。摆好架势。复古适合2:适配器-rx Java 2:2。9 .0"

实现“木卫一。反抗愤怒。rx Java 2:rx Android:2。0 .2"

//支持协程,改造2.6.0及以上版本不需要引入,改装内置已经支持

//实现“通讯器。杰克哈顿。改造:复古适合2-kot林-协程-适配器:0。9 .2"

2.添加网络权限

uses-permission Android:name=' Android。许可。互联网'/

3.编写加装辅助类

首先定义一个翻新助手辅助类,编写加装单例,改装内部已经维护了线程池做网络请求,不需要创建多个

注:基本网址必须为'/' 结尾

对象更新帮助程序{

//baseUrl根据自己项目修改

私有常量val BASE _ URL=' https://www。百度一下。' com '

私有定义变量改造:改造?=空

私人定义变量翻新建筑商:翻新。建筑商?=空

//翻新初始化

fun init(){

if (retrofitBuilder==null) {

val client=OkHttpClient .构建器()。connectTimeout(20,时间单位。秒)。readTimeout(20,时间单位。秒)。writeTimeout(20,时间单位.秒)。构建()

翻新建筑=翻新。构建器()。基本网址(基本网址)

//支持Json数据解析。addConverterFactory(gsonconverterfactory。create())

//支持RxJava返回类型。addCallAdapterFactory(rx Java 2 calladapterfactory。create())。客户(客户端)

}

改装=retrofitBuilder!构建()

}

fun getRetrofit():Retrofit{

如果(翻新==空){

抛出IllegalAccessException(“改型未初始化!')

}

返回改装!

}

}

然后再应用中进行初始化

类应用程序:应用程序(){

覆盖fun onCreate() {

super.onCreate()

RetrofitHelper.init()

}

}

在显示文件中指定应用

应用

android:name=' .应用程序

android:allowBackup='true '

Android:icon=' @ MIP map/IC _ launcher '

Android:label=' @ string/app _ name '

Android:round icon=' @ MIP map/IC _ launcher _ round '

android:supportsRtl='true '

Android:networkSecurityConfig=' @ XML/network _ security _ config '

android:theme='@style/Theme ."改装演示"

活动Android:name=' . 100 '主要活动'

意图过滤器

action Android:name=' Android。意图。行动。主'/

类别Android:name=' Android。意图。类别。启动器'/

/意图-过滤器

/活动

/应用程序

安卓P系统限制了明文流量的网络请求解决的办法有2种1.把所有的超文本传送协议(超文本传输协议的缩写)请求全部改为https请求2.在表示留数的可扩展标记语言目录(),然后创建一个名为:网络安全配置。可扩展标记语言文件

?可扩展标记语言版本='1.0 '编码='utf-8 '?

网络安全配置

允许的基本配置明文流量=' true '/

/网络安全配置

4.定义养蜂服务

首先我们先用一个最简单的得到请求来试一下,这个接口是请求天气情况的,免费的

接口Api {

@ GET(' http://www。天气。com。cn/data/sk/{城市代码} .html’)

fun getWeather(@ Path(' city code ')code:String):ObservableWeatherInfo

}

定义返回类型,为了方便打印,用的数据类类型

数据类天气信息(

var weatherinfo:Info?=null) {

数据类别信息(

定义变量城市:串串?

var cityid:String?

var temp:String?

var WD:字符串?

var WS:字符串?

var SD:字符串?

var AP:字符串?

var njd:字符串?

var WSE:字符串?

定义变量时间:字符串?)

}

首先用@GET注解表示该借口为得到请求,获取注解的价值为请求地址,完整的请求地址为baseUrl值,如价值为完整地址,则会使用价值为请求地址,一般通用情况下base URL='www.weather.com.cn/',然后GET('data/sk/{cityCode}).html ')@路径是网址中的参数,用来替换。

5.实现接口方法

5.1RxJava方法实现

类RetrofitViewModel:ViewModel() {

私人有价一次性用品:由懒人处理的复合材料{

CompositeDisposable()

}

趣味添加一次性用品(d:一次性用品){

一次性用品

}

val weather livedata=MutableLiveDataWeatherInfo()

有趣的天气(){

复古合体帮手。得到改革.创建(Api:class.java).getWeather('101010100 ')。subscribeOn(Schedulers.io())。观察者离子(机器人调度程序。主线程())。订阅(对象:观察气象信息{

覆盖fun onComplete() {}

覆盖订阅资金(d:可支配){

添加一次性用品

}

下次覆盖乐趣(t:天气信息){

weatherLiveData.value=t

}

覆盖fun onError(e:可投掷){

}

})

}

覆盖fun onCleared() {

super.onCleared()

disposables.clear()

}

}

这里是用视图模型中做的操作,如果是最有价值球员模式放在提出者中进行就好,首先通过加装单例调用服务的对象的天气预报方法,指定上下游事件的线程,创建观察者对象进行监听,在onNext方法中拿到返回结果后回调给活动,数据回调用的是LiveData,在活动中操作如下

类主要活动:app compat activity(){

私有val viewModel by viewModelsRetrofitViewModel()

私有var btnWeather: Button?=空

私人var tvWeather: TextView?=空

覆盖fun onCreate(savedInstanceState:Bundle?) {

super.onCreate(保存实例)

setContentView(r . layout。活动_主要)

视图模型。天气实况数据。观察(这个,观察者{

tvWeather?text=it.toString())

})

BTN天气=findviewbyid按钮BTN天气)

电视天气=findViewById(r . id。电视天气)

btnWeather?setOnClickListener {

viewModel.getWeather()

}

}

}

在活动中

1.创建视图模型对象

2.注册LiveData的回调

3.获取天气情况

如下图所示

开源代码库地址:github.com/ZhiLiangT/R…

以上就是安卓改造框架的使用的详细内容,更多关于安卓改造框架的资料请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: