Android中如何清除缓存
2017-08-13 16:05
330 查看
1、清除缓存涉及到的方法
一般来说,比较常有且容易混淆的有下面这两组:getCacheDir()与getFilesDir()
getExternalCacheDir()与getExternalCacheDir()
先说短的:
getCacheDir()方法获取的路径是/data/data//cachegetFilesDir()方法获取的路径是/data/data//files
再说长的:
Android应用程序在运行过程中,一般是把数据保存在SDCard中的(如果有)。大部分应用的做法是在SD下创建一个文件夹,然后把数据保存在这个文件夹中。但是当该应用被卸载后,这些数据还留在原处,所以需要我们在进行卸载应用操作的同时,帮用户清理掉这些(买卖不成仁义在)。而getExternalCacheDir()与getExternalCacheDir()方法可以拿到应用在SD卡中建立的缓存地址。getExternalCacheDir()方法获取的路径是/SDCard/Android/data/你的应用包名/files目录,一般用来放置需要长时间保存的数据。
getExternalFilesDir()方法获取的路径是/SDCard/Android/data/你的应用包名/cache目录,一般用来放置临时缓存数据
2、实际代码
我们知道清除缓存一共分为两部:拿到缓存地址
执行清除操作
让我们一个一个给出代码:
拿到缓存地址
public String getDiskCacheDir(Context context) { String cachePath = null; //判断是否有SD卡 if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) || !Environment.isExternalStorageRemovable()) { cachePath = context.getExternalCacheDir().getPath(); } else { cachePath = context.getCacheDir().getPath(); } return cachePath; }
执行清除操作
public static boolean deleteDir(File dir) { if (dir == null) return false; // 目录不存在返回true if (!dir.exists()) return true; // 不是目录返回false if (!dir.isDirectory()) return false; // 现在文件存在且是文件夹 File[] files = dir.listFiles(); if (files != null && files.length != 0) { for (File file : files) { if (file.isFile()) { if (!deleteFile(file)) return false; } else if (file.isDirectory()) { if (!deleteDir(file)) return false; } } } return dir.delete(); }
当然,这篇里的清除缓存只是一个初步浅层的清理,在之后我会继续补充,包括Android中不同关于文件夹的方法介绍和使用。
相关文章推荐
- 如何清除特定语句的执行计划缓存
- 如何有效的清除Android中无用的资源(静态代码分析)
- Android清除本地数据缓存代码
- 【Android】Android清除本地数据缓存代码
- Android获取缓存大小和清除缓存功能实现
- 如何在 Linux/Unix/Mac 下清除 DNS 查询缓存
- 电脑缓存如何清除?
- 如何清除网上浏览痕迹?清除缓存
- 如何清除页面的图片缓存
- Android清除本地缓存工具类代码
- 如何刷新清除DNS解析缓存命令
- 如何在 Linux/Unix/Mac 下清除 DNS 查询缓存
- 关于android清除缓存代码及计算大小
- 【Android】Android清除本地数据缓存代码(这些功能很强大不要乱用)
- Android清除缓存、清除数据
- Android清除本地数据缓存代码案例
- Android获取图片缓存及清除
- 如何清除aspx网页中的flash缓存
- Android清除本地数据缓存代码
- [Android]应用中实现清除缓存的功能