以下是我目前的理解:
我使用Picasso将http://www.example.com/imageA.png加载到我的imageView中。
Picasso下载imageA.png,简单来说,将其内部缓存为“http://www.example.com/imageA.png”。
我离线,打开我的应用,毕加索尝试再次将http://www.example.com/imageA.png加载到我的imageView中。它从缓存加载图像。即使我的网络不能正常工作,我也可以看到imageA。
这一切都很好,花花公子。
比如说http://www.example.com/imageA.png现在重定向到http://www.example.com/imageB.png,我重复步骤1和2.
这一次,我相信,Picasso将其缓存为http://www.example.com/imageB.png,因此当我在离线模式下打开我的应用时,我看不到imageA,因为它被缓存为imageB。
我是对的吗?
有没有办法强制Picasso将其缓存为原始网址?
答案 0 :(得分:0)
显然,您可以使用stableKey
向请求添加Request.Builder()
https://square.github.io/picasso/javadoc/com/squareup/picasso/Request.Builder.html#stableKey-java.lang.String-
答案 1 :(得分:0)
Picasso只管理内存缓存,所以stableKey只是那个。磁盘缓存由OkHttp管理。它的行为无法更改,因为com.squareup.okhttp.Cache是最终类。