我在我的应用程序中使用Glide库。我想在注销过程中完全清除Glide完成的所有图像缓存(磁盘和内存)。
注销过程是通过Job完成的(我使用了这个库android-queue)。
我想称这些为:
Glide.get(MyApplication.getInstance()).clearMemory();
Glide.get(MyApplication.getInstance()).clearDiskCache();
当执行这些行时,我遇到一些关于线程的麻烦(不是主线程;如果我使用Handler,则会出现另一个错误,你必须在后台线程上调用此方法等)。
感谢您的帮助!
答案 0 :(得分:0)
如果您只想清除应用程序缓存,可以使用以下代码:
public static void deleteCache(Context context) {
try {
File dir = context.getCacheDir();
deleteDir(dir);
} catch (Exception e) {}
}
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;
}
}
return dir.delete();
} else if(dir!= null && dir.isFile()) {
return dir.delete();
} else {
return false;
}
}
您可以将此代码与调用此代码的位置完全相同:
Glide.get(MyApplication.getInstance()).clearMemory();
Glide.get(MyApplication.getInstance()).clearDiskCache();