美文网首页
Glide 4 缓存大小计算与清理

Glide 4 缓存大小计算与清理

作者: lixinxin | 来源:发表于2018-02-12 14:48 被阅读185次

1.计算

 File cacheDir = Glide.getPhotoCacheDir(this);
 File parentFile = cacheDir.getParentFile();
 long size = GlideUtils.getDirSize(parentFile);
 String sizeText = GlideUtils.byteConversionGBMBKB(size);
 Log.e("glide_size", sizeText);

getDirSize

 public static long getDirSize(File dir) {
        if (dir == null) {
            return 0;
        }
        if (!dir.isDirectory()) {
            return 0;
        }
        long dirSize = 0;
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isFile()) {
                dirSize += file.length();
            } else if (file.isDirectory()) {
                dirSize += file.length();
                dirSize += getDirSize(file); // 递归调用继续统计
            }
        }
        return dirSize;
    }

byteConversionGBMBKB

 private static final double GB = 1024L * 1024L * 1024L;// 定义GB的计算常量
    private static final double MB = 1024L * 1024L;// 定义MB的计算常量
    private static final double KB = 1024L;// 定义KB的计算常量

    public static String byteConversionGBMBKB(double kSize) {
        DecimalFormat df = new DecimalFormat("#.00");
        double temp = 0;
        if (kSize / GB >= 1) {
            temp = kSize / GB;
            return df.format(temp) + "GB";
        } else if (kSize / MB >= 1) {
            temp = kSize / MB;
            return df.format(temp) + "MB";
        } else if (kSize / KB >= 1) {
            temp = kSize / KB;
            return df.format(temp) + "KB";
        }
        return kSize + "B";
    }

2.清除缓存

   new Thread(new Runnable() {
            @Override
            public void run() {
                Glide.get(MainActivity.this).clearDiskCache();
            }
        }).start();
    }

相关文章

网友评论

      本文标题:Glide 4 缓存大小计算与清理

      本文链接:https://www.haomeiwen.com/subject/tbgrtftx.html