计算和清除webview缓存
来源:互联网 发布:淘宝支付金额排名层级 编辑:程序博客网 时间:2024/05/21 06:56
致谢:感谢各位大神以及梁神
public class CleanCacheUtil { private Context mContext; private static CleanCacheUtil cleanCacheUtil; private CleanCacheUtil(Context mContext) { this.mContext = mContext; } public static CleanCacheUtil getInstance(Context mContext) { if (cleanCacheUtil == null) { cleanCacheUtil = new CleanCacheUtil(mContext); } return cleanCacheUtil; } public String countSize() { // 计算缓存大小 long fileSize = 0; String cacheSize = "0KB"; File cacheDir = mContext.getCacheDir();// /data/data/package_name/cache fileSize += getDirSize(cacheDir); File externalCacheDir = getExternalCacheDir(mContext);//"<sdcard>/Android/data/<package_name>/cache/" fileSize += getDirSize(externalCacheDir); fileSize -= 1024 * 10;//因为总是清不干净,所以减去一点 if (fileSize > 0) cacheSize = formatFileSize(fileSize); return cacheSize; } /** * 获取目录文件大小 * * @param dir * @return */ 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; } /** * 判断当前版本是否兼容目标版本的方法 * * @param VersionCode * @return */ public static boolean isMethodsCompat(int VersionCode) { int currentVersion = android.os.Build.VERSION.SDK_INT; return currentVersion >= VersionCode; } public static File getExternalCacheDir(Context context) { // return context.getExternalCacheDir(); API level 8 // e.g. "<sdcard>/Android/data/<package_name>/cache/" return context.getExternalCacheDir(); } /** * 转换文件大小 * * @param fileS * @return B/KB/MB/GB */ public static String formatFileSize(long fileS) { java.text.DecimalFormat df = new java.text.DecimalFormat("#.00"); String fileSizeString = ""; if (fileS < 1024) { fileSizeString = df.format((double) fileS) + "B"; } else if (fileS < 1048576) { fileSizeString = df.format((double) fileS / 1024) + "KB"; } else if (fileS < 1073741824) { fileSizeString = df.format((double) fileS / 1048576) + "MB"; } else { fileSizeString = df.format((double) fileS / 1073741824) + "G"; } return fileSizeString; } //在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/package_name目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache 文件夹下 /** * 清除app缓存 */ public void clearAppCache() { //先删除WebViewCache目录下的文件 mContext.deleteDatabase("webview.db"); mContext.deleteDatabase("webview.db-shm"); mContext.deleteDatabase("webview.db-wal"); mContext.deleteDatabase("webviewCache.db"); mContext.deleteDatabase("webviewCache.db-shm"); mContext.deleteDatabase("webviewCache.db-wal"); //清除数据缓存// clearCacheFolder(mContext.getFilesDir(), System.currentTimeMillis()); clearCacheFolder(mContext.getCacheDir(), System.currentTimeMillis()); String cacheDirPath = mContext.getFilesDir().getAbsolutePath() + "/webcache"; clearCacheFolder(new File(cacheDirPath), System.currentTimeMillis()); //2.2版本才有将应用缓存转移到sd卡的功能 clearCacheFolder(getExternalCacheDir(mContext), System.currentTimeMillis());// AdsUtil.clearinfo(mContext); } /** * 清除缓存目录 * * @param dir 目录 * @param curTime 当前系统时间 * @return */ private int clearCacheFolder(File dir, long curTime) { int deletedFiles = 0; if (dir != null && dir.isDirectory()) { try { for (File child : dir.listFiles()) { if (child.isDirectory()) { deletedFiles += clearCacheFolder(child, curTime); } if (child.lastModified() < curTime) { if (child.delete()) { deletedFiles++; } } } } catch (Exception e) { e.printStackTrace(); } } return deletedFiles; }}
0 0
- 计算和清除webview缓存
- Android Webview清除缓存和Cookie
- iOS WebView 清除缓存和Cookie
- Android Webview清除缓存和Cookie
- 计算缓存大小和清除缓存
- Xcode计算缓存文件大小和清除缓存
- ioS 计算缓存和清除缓存
- Android 计算缓存大小和清除缓存
- Android计算缓存大小和清除缓存
- ios webview清除缓存。
- ios webview清除缓存
- WebView Cache 缓存清除
- WebView清除缓存
- WebView Cache 缓存清除
- ios webview清除缓存
- WebView Cache 缓存清除
- ios webview清除缓存
- ios webview清除缓存
- java中的三元运算的运用, 特别是对于Long类型的数据的获取,特变的方便
- 概率机器学习和人工智能(概率机器学习和人工intelligence_Nature2015)
- 关于Android.view.WindowManager$BadTokenException异常
- 快捷键
- c++11 之type_traits
- 计算和清除webview缓存
- html5简单样式css3.0
- 4-9 二叉树的遍历
- Spring Cacheable标签 内部调用失效问题
- Windows下安装sphinx和创建索引及使用
- Hibernate 对象的三种状态 持久状态 临时状态 游离状态
- HTMLCSS基础-常见标签和SEO浅析
- 生成代理方法(generate delegate methods)
- HDU 2181 哈密顿绕行世界问题