我正在使用Picasso来显示图片。我需要时可以强制清除缓存吗?我搜索了它,但我找不到任何解决方案。
谢谢。
答案 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();
}
}