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 ->