RxCache 介绍
RxCache使用LruCache和DiskLruCache对网络请求数据进行二级缓存,主要适配于接口API返回数据,不用于图片等的缓存。可以设置缓存模式、缓存大小,设置数据过期时间,并提供了根据key删除缓存和清空所有缓存的功能。提供了Gson方式和Serialize方式进行数据存储转换与还原。
RxCache 的注解及参数
如果您现在使用的网络请求框架是RxJava+Retrofit那么使用RxCache将会很简单,您只需要知道它的注解及参数所代表的含义即可简单使用。
必不可少的参数是RxJava提供的响应式基本数据类型(如Observable),这个参数的意义是将您想缓存的Retrofit接口作为参数传入,并以相同的数据类型作为返回。
@Providerkey 保护用户数据的Provider方法的注解,强烈建议使用这个注解!如果不使用该注解,该方法的名称会被作为该Provider的key进行文件缓存,使用了代码混淆的用户很快就会遇到问题,如果不使用代码混淆,改注解也很有用,因为它可以确保您可以随心所欲的修改Provider数据缓存的方法名,而无需为旧缓存文件迁移的问题而苦恼。
@LifeCache 设置缓存过期时间,如果没有设置,数据将被永久缓存,直到你使用主动去清除
DynamicKey 通过传入一个对象参数(比如userId)实现和对应缓存数据绑定,清除该key相关联的缓存数据请使用 EvictDynamicKey
EvictDynamicKey 是否驱逐具体的缓存数据 DynamicKey.
缓存数据驱逐范围比EvictProvider小(后者是驱逐所有缓存),比EvictDynamicKeyGroup大(后者是驱逐更精细分类的缓存),举例,若将userId(唯一)作为参数传入DynamicKey,清除缓存时,仅清除该userId下的对应缓存EvictProvider 是否驱逐与该Provider相关的所有缓存数据。
该对象通过构造方法进行实例化,穿件是需要传入boolean类型参数,
true -> RxCache会直接器驱逐该Provider的缓存数据,进行最新的网络请求并进行缓存。
false -> 若缓存数据未过期,正常加载缓存数据EvictDynamicKeyGroup 是否驱逐更加具体的缓存数据 DynamicKeyGroup.
和EvictDynamicKey对比,上述案例中,DynamicKeyGroup可以filter到某userId下缓存的某一页数据进行驱逐,其他缓存不驱逐DynamicKeyGroup 通过传入一个Group参数(比如userId,数据的分类)实现和对应缓存数据的绑定, 清除该keyGroup相关联的缓存数据请使用EvictDynamicKeyGroup.
我觉得理解以上注解及参数的含义,基本使用已经不是什么大问题了
参考:
https://blog.csdn.net/mq2553299/article/details/78056742