1

我已经看到了这里提出的所有解决方案,但没有什么对我真正有用。

如何在我的应用程序中清除毕加索的缓存?

我尝试使用无效 - 不起作用。我看到了有关 Picasso.cache.clear 的一些内容,但无法直接访问缓存。

(请不要建议我使用 NO_CACHE)

谢谢。

4

2 回答 2

2

从这个答案中得到

将此类添加到 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));

只需将此文件添加到路径 .../java/com/squareup/picasso

PS 我强烈推荐使用glide而不是 picasso,它具有更强大的缓存控制功能和很棒的下载回调来捕获下载错误,例如

于 2016-04-18T12:20:45.547 回答
0

更新你的毕加索图书馆:

compile 'com.squareup.picasso:picasso:2.5.2'. 仅适用于 gradle 版本

2.5.0更高版本。Picasso.invalidate()

并清除缓存使用以下功能:

Picasso.with(context).invalidate(file);
于 2016-04-18T12:27:11.443 回答