如何在毕加索中清除缓存?

时间:2015-12-11 21:14:35

标签: java android caching memory picasso

我正在开发一个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的缓存?

2 个答案:

答案 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会改变所以将没有现金加载。希望不工作