hegaojian / JetpackMvvm

:chicken::basketball:一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
https://github.com/hegaojian/JetpackMvvm
Apache License 2.0
3.13k stars 610 forks source link

网络请求想要通过拦截器做持久换缓存,框架里有么? #84

Closed SheepYang1993 closed 2 years ago

SheepYang1993 commented 2 years ago

需要怎么封装?

hegaojian commented 2 years ago

框架中有一个缓存拦截器,如果没有网络,会从缓存里拿到之前的数据,你可以根据这个拦截器改写一下

hegaojian commented 2 years ago

CacheInterceptor 拦截器类名

TOPWN commented 2 years ago

框架中有一个缓存拦截器,如果没有网络,会从缓存里拿到之前的数据,你可以根据这个拦截器改写一下

有测试过吗,这个缓存拦截器貌似不生效唉

hegaojian commented 2 years ago

可以生效的,你在网络良好的时候进入首页,获取到数据后,退出app,关掉 wifi ,移动数据,进入会触发缓存拦截器

SheepYang1993 commented 2 years ago

@TOPWN @hegaojian 项目自带的CacheInterceptor测试过了,GET请求会缓存,但是POST不会。 这里的GET请求缓存,是使用okhttp自带的缓存拦截器,参考这个类:okhttp3.internal.cache.CacheInterceptor

可以参考下这个链接的拦截器,可以支持缓存POST请求 https://github.com/xiaolei123/OkhttpCacheInterceptor

hegaojian commented 2 years ago

可以的,666 👍