Google Volley 相关问题

Hummer&Tenon 2015-02-26 11:21:25
原始问题贴在这里

大致说一下:
在使用Volley的时候,发现HttpHeaderParser类中的parseCacheHeaders函数,在解析http header时,会有读取server端设置的max-age值,保存在Cache.Entry中:

Cache.Entry entry = new Cache.Entry();
entry.data = response.data;
entry.etag = serverEtag;
entry.softTtl = softExpire;
entry.ttl = entry.softTtl
entry.serverDate = serverDate;
entry.responseHeaders = headers;

这里entry.softTtl和entry.ttl是同一个值。

在CacheDispatcher类中有两个判断:entry.isExpired()和entry.refreshNeeded(),分别对应上面的entry.softTtl和entry.ttl值。


问题是:
1. 既然entry.softTtl和entry.ttl是同一个值,那为什么后面判断的时候需要有两个?而且分别是处理不同的case?
2. 我想让cache有效期无限长,即一旦本地获取过server端图片后,这个cache就始终有效,不会过期,请问可以实现吗?
...全文
77 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧