我正在使用Picasso
在我的应用中加载图片,但我遇到的问题是我的图片URL
相同,但图片正在从调用相同网址的backend
更改{{1加载保存在其缓存中的相同图像。现在我想清除该图像的缓存并再次重新加载图像。
我在 SO 上搜索的内容发现我们可以使用Picasso
或picasso.invalidate(fileName);
,但我收到了代码中的错误消息
无法重新启动方法
无法重新启动方法memoryPolicy
毕加索在gradle中的依赖性:
memoryPolicy(MemoryPolicy.NO_CACHE)
答案 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);