首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使毕加索中的缓存无效

使毕加索中的缓存无效
EN

Stack Overflow用户
提问于 2014-02-25 21:59:15
回答 13查看 63.7K关注 0票数 77

我使用Picasso (例如Picasso.with(ctx).load(new File("/path/to/image")).into(imageView) )从磁盘加载图像,但每当我在该文件中保存新图像并刷新我的ImageView时,毕加索仍然缓存了位图。

有没有可能使毕加索的缓存失效?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2015-02-15 17:09:09

在毕加索的最新版本中,有一种新的无效方法,没有任何变通方法,所以我认为前面提到的自定义PicassoTools类在这种情况下已经过时了

代码语言:javascript
复制
Picasso.with(getActivity()).invalidate(file);
票数 86
EN

Stack Overflow用户

发布于 2014-05-08 22:25:10

实际上,根据您自己的答案,有一种更简单的方法来完成这项工作,而不需要派生库。将此类添加到com.squareup.picasso包中。

代码语言:javascript
复制
package com.squareup.picasso;

public class PicassoTools {

    public static void clearCache (Picasso p) {
        p.cache.clear();
    }
}

因为缓存具有包可见性,所以这个util类可以为您清除缓存。你只需要把它叫做:

代码语言:javascript
复制
PicassoTools.clearCache(Picasso.with(context));
票数 85
EN

Stack Overflow用户

发布于 2015-03-10 20:52:08

通过标志指示内存策略中止内存缓存和磁盘缓存检查: emoryPolicy.NO_CACHE和NetworkPolicy.NO_CACHE,如下代码片段所示:

代码语言:javascript
复制
   mPicasso.with(mContext)
            .load(url)
            .memoryPolicy(MemoryPolicy.NO_CACHE )
            .networkPolicy(NetworkPolicy.NO_CACHE)
            .resize(512, 512)
            .error(R.drawable.login)
            .noFade()
            .into(imageView);
票数 66
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22016382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档