Glide作为图片缓存,清除缓存的合理方法

来源:互联网 发布:让人变老的相机软件 编辑:程序博客网 时间:2024/04/30 21:37
1.glide提供的方法:
下面是glide缓存的配置
public class GlideCache implements GlideModule {    @Override    public void applyOptions(Context context, GlideBuilder builder) {        //设置图片的显示格式ARGB_8888(指图片大小为32bit)        builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);        //设置磁盘缓存目录(和创建的缓存目录相同)        String downloadDirectoryPath = Config.CacheImagePath+ "GlideCache";        //设置缓存的大小为100M        int cacheSize = 100 * 1000 * 1000;        builder.setDiskCache(new DiskLruCacheFactory(downloadDirectoryPath, cacheSize));    }    @Override    public void registerComponents(Context context, Glide glide) {    }}

Glide.get(SettingActivity.this).clearDiskCache();
使用该方法可以安全的解决删除图片缓存
2.直接删除glide文件夹 简单粗暴删除
// 按目录删除文件夹文件方法public static boolean deleteFolderFile(String filePath, boolean deleteThisPath) {   try {      File file = new File(filePath);      if (file.isDirectory()) {         File files[] = file.listFiles();         for (File file1 : files) {            deleteFolderFile(file1.getAbsolutePath(), true);         }      }      if (deleteThisPath) {         if (!file.isDirectory()) {            file.delete();         } else {            if (file.listFiles().length == 0) {               file.delete();            }         }      }      return true;   } catch (Exception e) {      e.printStackTrace();      return false;   }}

使用该方法 虽然可以删除文件夹 但是会出现 页面的图片无法显示了glide加载图片异常了 必须重新启动程序
所以该方法是不建议使用的
总结:
但是有时候我们图片文件夹缓存可能不只glide一个文件夹 
可以特殊处理对于父类文件除了glide的直接删除 glide的缓存推荐使用第一种glide方法删除
// 按目录删除文件夹文件方法除了exceptpublic static boolean deleteFolderFile(String filePath, boolean deleteThisPath,String except) {   try {      File file = new File(filePath);      if (file.isDirectory()) {         File files[] = file.listFiles();         for (File file1 : files) {            if(!file1.getAbsolutePath().equals(except)) {               deleteFolderFile(file1.getAbsolutePath(), true);            }         }      }      if (deleteThisPath) {         if (!file.isDirectory()) {            file.delete();         } else {            if (file.listFiles().length == 0) {               file.delete();            }         }      }      return true;   } catch (Exception e) {      e.printStackTrace();      return false;   }}

 
原创粉丝点击