Android 获取应用缓存大小与清除缓存的方法
如下所示:
packagecom.lucasey.littleant.frame;
/**
*文件名:FileCacheUtils.java
*描述:主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录
**/
importjava.io.File;
importjava.math.BigDecimal;
importandroid.content.Context;
importandroid.os.Environment;
importandroid.text.TextUtils;
/**本应用数据清除管理器*/
publicclassFileCacheUtils{
/**
**清除本应用内部缓存(/data/data/com.xxx.xxx/cache)**
*
*@paramcontext
*/
publicstaticvoidcleanInternalCache(Contextcontext){
deleteFilesByDirectory(context.getCacheDir());
}
/**
**清除本应用所有数据库(/data/data/com.xxx.xxx/databases)**
*
*@paramcontext
*/
publicstaticvoidcleanDatabases(Contextcontext){
deleteFilesByDirectory(newFile("/data/data/"
+context.getPackageName()+"/databases"));
}
/**
**清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs)*
*
*@paramcontext
*/
publicstaticvoidcleanSharedPreference(Contextcontext){
deleteFilesByDirectory(newFile("/data/data/"
+context.getPackageName()+"/shared_prefs"));
}
/**
**按名字清除本应用数据库**
*
*@paramcontext
*@paramdbName
*/
publicstaticvoidcleanDatabaseByName(Contextcontext,StringdbName){
context.deleteDatabase(dbName);
}
/**
**清除/data/data/com.xxx.xxx/files下的内容**
*
*@paramcontext
*/
publicstaticvoidcleanFiles(Contextcontext){
deleteFilesByDirectory(context.getFilesDir());
}
/**
**清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache)
*
*@paramcontext
*/
publicstaticvoidcleanExternalCache(Contextcontext){
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){
deleteFilesByDirectory(context.getExternalCacheDir());
}
}
/**
**清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除**
*
*@paramfilePath
**/
publicstaticvoidcleanCustomCache(StringfilePath){
deleteFilesByDirectory(newFile(filePath));
}
/**
**清除本应用所有的数据**
*
*@paramcontext
*@paramfilepath
*/
publicstaticvoidcleanApplicationData(Contextcontext,String...filepath){
cleanInternalCache(context);
cleanExternalCache(context);
cleanDatabases(context);
cleanSharedPreference(context);
cleanFiles(context);
if(filepath==null){
return;
}
for(StringfilePath:filepath){
cleanCustomCache(filePath);
}
}
/**
**删除方法这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理**
*
*@paramdirectory
*/
privatestaticvoiddeleteFilesByDirectory(Filedirectory){
if(directory!=null&&directory.exists()&&directory.isDirectory()){
for(Fileitem:directory.listFiles()){
item.delete();
}
}
}
//获取文件
//Context.getExternalFilesDir()-->SDCard/Android/data/你的应用的包名/files/目录,一般放一些长时间保存的数据
//Context.getExternalCacheDir()-->SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
publicstaticlonggetFolderSize(Filefile)throwsException{
longsize=0;
try{
File[]fileList=file.listFiles();
for(inti=0;i
以上这篇Android获取应用缓存大小与清除缓存的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。