Glide获取缓存大小以及清除缓存
来源:互联网 发布:php手册中文版下载 编辑:程序博客网 时间:2024/05/01 00:59
compile 'com.github.bumptech.glide:glide:3.7.0'//调用工具类获取缓存大小String cacheSize = GlideCacheUtil.getInstance().getCacheSize(this);clean.setText(cacheSize);//百度地图跳转 dingwei.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.setData(Uri.parse("baidumap://map?")); startActivity(intent); } });//清除缓存clean.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //消除所有缓存 GlideCacheUtil.getInstance().clearImageAllCache(MainActivity.this); //获取大小 String cacheSize = GlideCacheUtil.getInstance().getCacheSize(MainActivity.this); clean.setText(cacheSize); } });
//工具类public class GlideCacheUtil { private static GlideCacheUtil inst; public static GlideCacheUtil getInstance() { if (inst == null) { inst = new GlideCacheUtil(); } return inst; } /** * 清除图片磁盘缓存 */ public void clearImageDiskCache(final Context context) { try { if (Looper.myLooper() == Looper.getMainLooper()) { new Thread(new Runnable() { @Override public void run() { Glide.get(context).clearDiskCache();// BusUtil.getBus().post(new GlideCacheClearSuccessEvent()); } }).start(); } else { Glide.get(context).clearDiskCache(); } } catch (Exception e) { e.printStackTrace(); } } /** * 清除图片内存缓存 */ public void clearImageMemoryCache(Context context) { try { if (Looper.myLooper() == Looper.getMainLooper()) { //只能在主线程执行 Glide.get(context).clearMemory(); } } catch (Exception e) { e.printStackTrace(); } } /** * 清除图片所有缓存 */ public void clearImageAllCache(Context context) { clearImageDiskCache(context); clearImageMemoryCache(context); String ImageExternalCatchDir=context.getExternalCacheDir()+ ExternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR; deleteFolderFile(ImageExternalCatchDir, true); } /** * 获取Glide造成的缓存大小 * * @return CacheSize */ public String getCacheSize(Context context) { try { return getFormatSize(getFolderSize(new File(context.getCacheDir() + "/"+ InternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR))); } catch (Exception e) { e.printStackTrace(); } return ""; } /** * 获取指定文件夹内所有文件大小的和 * * @param file file * @return size * @throws Exception */ private long getFolderSize(File file) throws Exception { long size = 0; try { File[] fileList = file.listFiles(); for (File aFileList : fileList) { if (aFileList.isDirectory()) { size = size + getFolderSize(aFileList); } else { size = size + aFileList.length(); } } } catch (Exception e) { e.printStackTrace(); } return size; } /** * 删除指定目录下的文件,这里用于缓存的删除 * * @param filePath filePath * @param deleteThisPath deleteThisPath */ private void deleteFolderFile(String filePath, boolean deleteThisPath) { if (!TextUtils.isEmpty(filePath)) { 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(); } } } } catch (Exception e) { e.printStackTrace(); } } } /** * 格式化单位 * * @param size size * @return size */ private static String getFormatSize(double size) { double kiloByte = size / 1024; if (kiloByte < 1) { return size + "Byte"; } double megaByte = kiloByte / 1024; if (megaByte < 1) { BigDecimal result1 = new BigDecimal(Double.toString(kiloByte)); return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB"; } double gigaByte = megaByte / 1024; if (gigaByte < 1) { BigDecimal result2 = new BigDecimal(Double.toString(megaByte)); return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB"; } double teraBytes = gigaByte / 1024; if (teraBytes < 1) { BigDecimal result3 = new BigDecimal(Double.toString(gigaByte)); return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB"; } BigDecimal result4 = new BigDecimal(teraBytes); return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB"; }}
0 0
- Glide获取缓存大小以及清除缓存
- 使用Glide获取图片缓存大小以及清除缓存
- 浅谈Glide缓存的大小以及清除缓存
- Android Glide获取缓存大小与清除缓存
- Glide获取缓存大小并清除缓存图片
- Android Glide缓存清除与获取缓存大小
- Glide获取缓存大小并清除缓存图片
- Glide获取缓存大小并清除缓存图片
- Android Glide获取缓存大小与清除缓存
- Glide 缓存工具例子,缓存大小获取,磁盘缓存清除(2 种方法),内存缓存清除
- sdwebimage如何获取缓存大小以及清除缓存
- sdwebimage如何获取缓存大小以及清除缓存
- 获取缓存大小+清除缓存大小
- 获取缓存大小和清除缓存功能
- 获取缓存大小和清除缓存功能
- iOS 获取缓存大小 清除缓存
- SDWebImage获取缓存大小,清除缓存
- 获取缓存大小和清除缓存功能
- 基于networkx的《人民的名义》人物关系图
- 设备树学习之(十二)LCD驱动
- 进阶篇_map容器(保存键值对)
- 深度学习中的可视化
- 使用User-Agent防止HttpClient发送http请求时403 Forbidden和安全拦截
- Glide获取缓存大小以及清除缓存
- Python 基础 —— 生成器 generator
- Android状态栏微技巧,带你真正理解沉浸式模式
- jqueryValidator
- plsql创建job执行定时任务
- 17.5.3第一天—netty实现服务端与客户端的通讯,并且获取服务端的cpu,内存等性能
- JAVA时间格式转换
- java异常 java.lang.OutOfMemoryError内存溢出问题
- SpringMVC工作原理