Android开发之----客户端清理缓存
来源:互联网 发布:下载qq注册软件 编辑:程序博客网 时间:2024/05/21 16:56
首先 清理缓存以及格式换算的工具类
public class ClearCacheUtil { /** * @param context * @return * @throws Exception 获取当前缓存 */ public String getTotalCacheSize(Context context) throws Exception { long cacheSize = getFolderSize(context.getCacheDir()); if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { cacheSize += getFolderSize(context.getExternalCacheDir()); } return getFormatSize(cacheSize); } /** * @param context 删除缓存 */ public void clearAllCache(Context context) { deleteDir(context.getCacheDir()); if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { deleteDir(context.getExternalCacheDir()); } } private static boolean deleteDir(File dir) { if (dir != null && dir.isDirectory()) { String[] children = dir.list(); int size = 0; if (children != null) { size = children.length; for (int i = 0; i < size; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } } } if (dir == null) { return true; } else { return dir.delete(); } } // 获取文件 // Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ // 目录,一般放一些长时间保存的数据 // Context.getExternalCacheDir() --> // SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据 public static long getFolderSize(File file) throws Exception { long size = 0; try { File[] fileList = file.listFiles(); int size2 = 0; if (fileList != null) { size2 = fileList.length; for (int i = 0; i < size2; i++) { // 如果下面还有文件 if (fileList[i].isDirectory()) { size = size + getFolderSize(fileList[i]); } else { size = size + fileList[i].length(); } } } } catch (Exception e) { e.printStackTrace(); } return size; } /** * 格式化单位 * 计算缓存的大小 * * @param size * @return */ public static String getFormatSize(double size) { double kiloByte = size / 1024; if (kiloByte < 1) { // return size + "Byte"; return "0K"; } 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"; }}
然后,直接在需要的地方使用就好了
比如:
//缓存数据 final ClearCacheUtil clearCacheUtil = new ClearCacheUtil(); String cache = null; try { cache = clearCacheUtil.getTotalCacheSize(this); ToastUtil.showToast(cache); cllClearCache.setContentText(cache); final String finalCache = cache; cllClearCache.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clearCacheUtil.clearAllCache(SettingActivity.this); cllClearCache.setContentText("0k"); } }); } catch (Exception e) { e.printStackTrace(); }}
0 0
- Android开发之----客户端清理缓存
- android开发之清理缓存
- EAS 客户端缓存清理
- android AIDL实践之清理应用缓存
- iOS开发清理缓存
- iOS 之清理缓存
- android 缓存 清理
- Android清理软件缓存
- Android清理webview缓存
- Android 清理应用缓存
- Android 清理应用缓存
- android---清理应用缓存
- android 清理缓存
- android缓存清理
- Android 清理应用缓存
- android缓存清理
- Android缓存数据清理
- android app缓存清理
- [李景山php]每天TP5-20170204|thinkphp5-Response.php
- 析构函数私有化
- 在新版本caffe里添加新的一层(向旧格式中加)
- Java StringUtils
- android RecyclerView 讲解
- Android开发之----客户端清理缓存
- UVa-1583-生成元
- 解决 Qt 使用 PNG 图片时报错:libpng warning: iCCP: known incorrect sRGB profile
- 如何将一个纯数字数组里的元素全部相加
- USB与FPGA的联合应用架构
- 决策树算法的优缺点
- 随笔——腾讯
- 根据网络请求返回值 创建Menu
- google Map 在手机上是否可以使用的判断