android清理app缓存,计算缓存大小 工具类
来源:互联网 发布:中国软件 综合排名 编辑:程序博客网 时间:2024/06/05 07:01
public class DataCleanManager {/** * @param context * @return * @throws Exception * 获取当前缓存 */public static 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 static 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";}}
阅读全文
0 0
- android清理app缓存,计算缓存大小 工具类
- android计算app缓存大小
- Android清理缓存工具类
- android清理缓存工具类
- android app缓存清理
- android app清理缓存
- 清理缓存和计算缓存内容大小
- iOS 计算缓存大小以及清理缓存
- android获取缓存大小并清理缓存
- android获取缓存大小并清理缓存
- Android 清理app所有缓存
- 获取APP缓存大小以及清理APP缓存
- iOS开发 _计算缓存大小/清理
- Android中计算缓存大小并清空缓存的工具类.
- Android计算缓存大小、清空缓存
- Android 计算缓存大小和清除缓存
- Android计算缓存大小和清除缓存
- iOS 缓存大小 清理
- Rightmost Digit 【hdu-1061】【快速幂】
- SSM调用oracle存储过程实现权限菜单
- JS-判断浏览器中英文
- Windows环境下视频分帧
- 我的第一篇CSDN博客文章
- android清理app缓存,计算缓存大小 工具类
- Engllish story 16
- java中length,length(),size()区别
- PDF转图片
- android 数据解析错误
- 用U盘在Mac OS X中安装Windows7系统
- 表单序列化以json格式传输
- Scala继承层次
- STL空间配置