如何在Picasso中清除缓存和重新加载图像?

时间:2016-11-07 06:24:45

标签: android picasso

我正在使用Picasso在我的应用中加载图片,但我遇到的问题是我的图片URL相同,但图片正在从调用相同网址的backend更改{{1加载保存在其缓存中的相同图像。现在我想清除该图像的缓存并再次重新加载图像。

我在 SO 上搜索的内容发现我们可以使用Picassopicasso.invalidate(fileName);,但我收到了代码中的错误消息

  

无法重新启动方法

     

无法重新启动方法memoryPolicy

毕加索在gradle中的依赖性:

memoryPolicy(MemoryPolicy.NO_CACHE)

5 个答案:

答案 0 :(得分:15)

尝试使用它。

 Picasso.with(context).invalidate(url); 
 Picasso.with(context).load(url).networkPolicy(NetworkPolicy.NO_CACHE).memoryPolicy(MemoryPolicy.NO_CACHE); 

compile 'com.squareup.picasso:picasso:2.5.2'

答案 1 :(得分:6)

invalidate()memoryPolicy()是在该库的更高版本中引入的。要使用其中任何一个,请将毕加索更新为最新版本

compile 'com.squareup.picasso:picasso:2.5.2'

答案 2 :(得分:1)

追加到网址的末尾"?=" + System.currentTimeMillis();

答案 3 :(得分:0)

使用okhttp客户端进行picasso,如下所示

okHttpClient = new OkHttpClient();
picasso = new Picasso.Builder(this)
            .downloader(new OkHttpDownloader(okHttpClient))
            .build();

如果它不起作用将okhttp客户端缓存控制设置为网络

setCacheControl(CacheControl.FORCE_NETWORK);

答案 4 :(得分:0)

  

Picasso支持下载和错误占位符作为可选项   gradle中的功能和最新版本。   每次调用时检查代码中的URL

Picasso.with(context)
    .load(url)
    .placeholder(R.drawable.user_placeholder)
    .error(R.drawable.user_placeholder_error)
    .into(imageView);