android清除sp缓存,android获取缓存大小和清除缓存

这个博客介绍了如何在Android中获取应用程序的缓存大小,包括内部缓存和外部缓存,并提供了清除所有缓存的方法。DataCleanManager工具类提供了获取总缓存大小(包括SDCard上的缓存)以及删除缓存目录的静态方法。通过递归遍历文件夹,计算文件大小,并以KB, MB, GB或TB格式返回结果。" 105533849,9157599,使用python-docx操作Word文档指南,"['Python', '文档处理', 'word', 'python-docx']
摘要由CSDN通过智能技术生成

packagecom.jianong.xmtt.util;importandroid.content.Context;importandroid.os.Environment;importjava.io.File;importjava.math.BigDecimal;/*** Created by hgl on 2016/6/23.*/

public classDataCleanManager {/*** 获取缓存大小

*@paramcontext

*@return*@throwsException*/

public static String getTotalCacheSize(Context context) throwsException {long cacheSize =getFolderSize(context.getCacheDir());if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

cacheSize+=getFolderSize(context.getExternalCacheDir());

}returngetFormatSize(cacheSize);

}/*** 清除缓存

*@paramcontext*/

public static voidclearAllCache(Context context) {

deleteDir(context.getCacheDir());if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

deleteDir(context.getExternalCacheDir());

}

}private static booleandeleteDir(File dir) {if (dir != null &&dir.isDirectory()) {

String[] children=dir.list();for (int i = 0; i < children.length; i++) {boolean success = deleteDir(newFile(dir, children[i]));if (!success) {return false;

}

}

}returndir.delete();

}//获取文件大小//Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据//Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

public static long getFolderSize(File file) throwsException {long size = 0;try{

File[] fileList=file.listFiles();for (int i = 0; i < fileList.length; i++) {//如果下面还有文件

if(fileList[i].isDirectory()) {

size= size +getFolderSize(fileList[i]);

}else{

size= size +fileList[i].length();

}

}

}catch(Exception e) {

e.printStackTrace();

}returnsize;

}/*** 格式化单位

*@paramsize

*@return

*/

public static String getFormatSize(doublesize) {double kiloByte = size / 1024;if (kiloByte < 1) {//return size + "Byte";

return "0K";

}double megaByte = kiloByte / 1024;if (megaByte < 1) {

BigDecimal result1= newBigDecimal(Double.toString(kiloByte));return result1.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString()+ "K";

}double gigaByte = megaByte / 1024;if (gigaByte < 1) {

BigDecimal result2= newBigDecimal(Double.toString(megaByte));return result2.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString()+ "M";

}double teraBytes = gigaByte / 1024;if (teraBytes < 1) {

BigDecimal result3= newBigDecimal(Double.toString(gigaByte));return result3.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString()+ "GB";

}

BigDecimal result4= newBigDecimal(teraBytes);return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()+ "TB";

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值