okgo缓存策略
缓存策略总共有5种分别如下
public enum CacheMode {
/** 按照HTTP协议的默认缓存规则,例如有304响应头时缓存 */
DEFAULT,
/** 不使用缓存 */
NO_CACHE,
/** 请求网络失败后,读取缓存 */
REQUEST_FAILED_READ_CACHE,
/** 如果缓存不存在才请求网络,否则使用缓存 */
IF_NONE_CACHE_REQUEST,
/** 先使用缓存,不管是否存在,仍然请求网络 */
FIRST_CACHE_THEN_REQUEST,
}
使用方法如下
OkGo.get("url")
.cacheKey("key")
.cacheMode(CacheMode.FIRST_CACHE_THEN_REQUEST)
.execute(new StringCallback() {
@Override
public void onSuccess(String s, Call call, Response response) {
//网络回调
}
@Override
public void onCacheSuccess(String s, Call call) {
//缓存回调
}
});
缓存数据为okgo自己在读到网络数据时候保存,但如果要修改缓存的数据如何修改。修改方法如下
CacheEntity cacheEntity = CacheManager.INSTANCE.get("key");
if (cacheEntity != null) {
cacheEntity.setData(value);
CacheManager.INSTANCE.replace("key", cacheEntity);
}