清除缓存

publicclassDataCleanManager {

publicstaticString getTotalCacheSize(Context context)throwsException {

longcacheSize = getFolderSize(context.getCacheDir());

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

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

}

returngetFormatSize(cacheSize);

}

publicstaticvoidclearAllCache(Context context) {

deleteDir(context.getCacheDir());

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {

deleteDir(context.getExternalCacheDir());

}

}

privatestaticbooleandeleteDir(File dir) {

if(dir !=null&& dir.isDirectory()) {

String[] children = dir.list();

for(inti =0; i < children.length; i++) {

booleansuccess = deleteDir(newFile(dir, children[i]));

if(!success) {

returnfalse;

}

}

}

returndir.delete();

}

// 获取文件

//Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据

//Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据

publicstaticlonggetFolderSize(File file)throwsException {

longsize =0;

try{

File[] fileList = file.listFiles();

for(inti =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;

}

/**

* 格式化单位

*

* @param size

* @return

*/

publicstaticString getFormatSize(doublesize) {

doublekiloByte = size /1024;

if(kiloByte <1) {

//            return size + "Byte";

return"0K";

}

doublemegaByte = kiloByte /1024;

if(megaByte <1) {

BigDecimal result1 =newBigDecimal(Double.toString(kiloByte));

returnresult1.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString() +"KB";

}

doublegigaByte = megaByte /1024;

if(gigaByte <1) {

BigDecimal result2 =newBigDecimal(Double.toString(megaByte));

returnresult2.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString() +"MB";

}

doubleteraBytes = gigaByte /1024;

if(teraBytes <1) {

BigDecimal result3 =newBigDecimal(Double.toString(gigaByte));

returnresult3.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString() +"GB";

}

BigDecimal result4 =newBigDecimal(teraBytes);

returnresult4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()

+"TB";

}

}

你可能感兴趣的:(清除缓存)