史上最精简的Retrofit2 、OkHttp3、ViewModel封装,自带二级缓存功能

该博客介绍了如何使用Kotlin进行史上最精简的Retrofit2和OkHttp3网络数据加载封装,结合ViewModel,并实现二级缓存功能。通过接口注解配置加载状态和缓存策略,长按Activity查看请求LOG,简化了开发工作并提升了用户体验。
摘要由CSDN通过智能技术生成

     MyRetrofitGo
一、史上最精简的【带有缓存】的【网络数据加载】封装,Kotlin语言实现Retrofit2 结合OkHttp3网络层,ViewModel技术,使用Kotlin协程,加载网络数据,并添加缓存功能,,同时针对ApiService接口添加注解配置,来配置是否显示loadingDiaog、是否启用缓存功能,并且长按Activity可随时查看当前页面的所有网络请求LOG信息,减轻开发工作,且增加用户体验,堪称史上最简洁的代码,实现你想要的功能;如下:

ViewModel定义:
    class TestViewModel : BaseViewModel() {
        fun test(name: String) = go { API.getData(name, "23") }
    }
Activity里调用:
        viewmodel.test(this, "name1").obs(this) {
            it.c { "缓存数据${it.toJson()}".log() } 
            it.y { "网络数据${it.toJson()}".log() } 
            it.n { "异常数据${it.toJson()}".log() } 
        }


二、缓存逻辑:
 1、无缓存:  调用接口 -> 无缓存 -> 加载网络数据   ->  网络数据更新UI -> 更新网络数据到缓存
2、有缓存:  调用接口 -> 有缓存 -> 缓存数据更新UI ->  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值