我使用Picasso (例如Picasso.with(ctx).load(new File("/path/to/image")).into(imageView)
)从磁盘加载图像,但每当我在该文件中保存新图像并刷新我的ImageView
时,毕加索仍然缓存了位图。
有没有可能使毕加索的缓存失效?
发布于 2015-02-15 17:09:09
在毕加索的最新版本中,有一种新的无效方法,没有任何变通方法,所以我认为前面提到的自定义PicassoTools类在这种情况下已经过时了
Picasso.with(getActivity()).invalidate(file);
发布于 2014-05-08 22:25:10
实际上,根据您自己的答案,有一种更简单的方法来完成这项工作,而不需要派生库。将此类添加到com.squareup.picasso包中。
package com.squareup.picasso;
public class PicassoTools {
public static void clearCache (Picasso p) {
p.cache.clear();
}
}
因为缓存具有包可见性,所以这个util类可以为您清除缓存。你只需要把它叫做:
PicassoTools.clearCache(Picasso.with(context));
发布于 2015-03-10 20:52:08
通过标志指示内存策略中止内存缓存和磁盘缓存检查: emoryPolicy.NO_CACHE和NetworkPolicy.NO_CACHE,如下代码片段所示:
mPicasso.with(mContext)
.load(url)
.memoryPolicy(MemoryPolicy.NO_CACHE )
.networkPolicy(NetworkPolicy.NO_CACHE)
.resize(512, 512)
.error(R.drawable.login)
.noFade()
.into(imageView);
https://stackoverflow.com/questions/22016382
复制相似问题