清除毕加索缓存

Picasso cache clear

我已经看到这里提出的每一个解决方案,但没有一个对我有用。

如何清除应用程序中 Picasso 的缓存?

我试过使用 invalidate - 没用。 我看到了有关 Picasso.cache.clear 的内容,但无法直接访问缓存。

(请不要建议我使用NO_CACHE)

谢谢。

get from this answer

将此 class 添加到 com.squareup.picasso 包中。

package com.squareup.picasso;

public class PicassoTools {

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

因为缓存具有包可见性,所以此实用程序class 可以为您清除缓存。你只需要调用它:

PicassoTools.clearCache(Picasso.with(context));

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

P.S。我强烈建议使用 glide 而不是 picasso,它有更强大的功能来缓存控制和很棒的下载回调来捕获下载错误,例如

更新你的毕加索图书馆:

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

As Picasso.invalidate() 仅适用于 gradle 版本 2.5.0 及更高版本。

并使用以下函数清除缓存:

Picasso.with(context).invalidate(file);