毕加索图像库缓存

时间:2013-12-01 14:21:32

标签: android picasso

我正在使用Picasso来显示图片。我需要时可以强制清除缓存吗?我搜索了它,但我找不到任何解决方案。

谢谢。

2 个答案:

答案 0 :(得分:5)

基于另一个问题及其自我回答:Invalidate cache in Picasso

有一种更简单的方法可以在不分支库的情况下完成。将此类添加到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));

答案 1 :(得分:1)

使用此代码

import java.io.File;

import android.content.Context;

import com.androlizer.yify.torrent.R;

public class ClearCache {

    public static void trimCache(Context context) {
        try {
            File dir = context.getCacheDir();
            if (dir != null && dir.isDirectory()) {
                if (deleteDir(dir)) {
                    CreateSuperToast.createInfoToast(context, context.getString(R.string.cache_cleared));
                }else{
                    CreateSuperToast.createInfoToast(context, context.getString(R.string.cache_not_cleared));
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
        }
    }

    public static boolean deleteDir(File dir) {
        if (dir != null && dir.isDirectory()) {
            String[] children = dir.list();
            for (int i = 0; i < children.length; i++) {
                boolean success = deleteDir(new File(dir, children[i]));
                if (!success) {
                    return false;
                }
            }
        }

        // The directory is now empty so delete it
        return dir.delete();
    }
}