我正在开发一个Android应用程序。在该应用程序中,服务器存储要在listview的imageView中显示的图像。我使用毕加索从服务器获取图像并在imageview中显示。虽然我在服务器上上传了新图像,但只会再次显示旧图像。我怀疑这是因为毕加索的缓存。 我使用了3种方法来阻止缓存:
Picasso.with(getActivity()).load(data.get(pos).getFeed_thumb_image()).skipMemoryCache().into(image);
Picasso.with(getActivity()).load(data.get(pos).getFeed_thumb_image()).memoryPolicy(MemoryPolicy.NO_CACHE).into(image);
Picasso.with(context).invalidate(imagePath);
但是没有结果。如何在picasso中清除特定URL的缓存?
答案 0 :(得分:1)
这将在未来实施,但请参阅post of Jake Wharton:
JakeWharton评论于2014年12月11日当前最佳候选人:
picasso.load('http://example.com/')
.cachePolicy(NO_CACHE, NO_STORE)
.networkPolicy(NO_CACHE, NO_STORE, OFFLINE)
.into(imageView);
enum MemoryPolicy {
NO_CACHE, NO_STORE
}
enum NetworkPolicy {
NO_CACHE, NO_STORE, OFFLINE
}
除非有人有其他想法,否则这将是实施的。
答案 1 :(得分:0)
尝试使用类似时间的变量加载网址: 日历urlvar = Calendar.getInstance(); int seconds = urlvar.get(Calendar.SECOND);
然后通过添加到string:?urlvar加载你的url,这样最终加载的url将是例如example.com/m.png?date它将被兑现,但是下次加载日期会被更改,所以url会改变所以将没有现金加载。希望不工作