使用Picasso清除网络缓存

时间:2016-08-24 10:38:19

标签: android caching picasso

我正在使用Picasso将图片加载到我的ImageView中,如下所示:

Picasso.with(getContext())
       .load(store.getString("profile"))
       .placeholder(R.drawable.ic_nothumb)
       .resize(120, 120)
       .into(iv);

store.getString("profile") = a字符串代表我的网址。

但即使路径没有变化,当我在同一路径中更新图片时,Picasso仍会加载上一张图片。

我已经知道我们可以清除网络缓存但我无法找到使用方法 当我尝试使用.invalidate()方法时,.cachePolicy().networkPolicy()我还有未解决的符号。

编辑:我更新了我的Picasso版本以进行编译

"com.squareup.picasso:picasso:2.5.2"

现在我可以使用.networkPolicy(),但是我遇到了这个错误,我找不到任何解决方法来修复它:

  

E / AndroidRuntime:致命异常:主要       处理:dev.com.diaginfo,PID:10614       java.lang.NoClassDefFoundError:解析失败:Lcom / squareup / picasso / NetworkPolicy;       引起:java.lang.ClassNotFoundException:没找到类" com.squareup.picasso.NetworkPolicy"在路径上:DexPathList

2 个答案:

答案 0 :(得分:1)

你必须明确告诉Picasso不要缓存图像:

Picasso.with(getContext())
    .load(store.getString("profile"))
    .placeholder(R.drawable.ic_nothumb)
    .resize(120, 120)
    .networkPolicy(NetworkPolicy.NO_CACHE)
    .into(iv);

答案 1 :(得分:0)

Picaso使用ur url作为缓存的关键。更新图像时使用时间戳来过来。我已经习惯了,它就像一个魅力