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

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方法删除
// 按目录删除文件夹文件方法除了except
public 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;
   }
}



                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值