zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

android开发教程之清除android数据缓存示例(清除本地数据缓存)

Android教程缓存数据开发 示例 本地 清除
2023-06-13 09:15:18 时间

复制代码代码如下:


/* *文件名: DataCleanManager.java *描   述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 */

importjava.io.File;
importandroid.content.Context;
importandroid.os.Environment;

/***本应用数据清除管理器*/
publicclassDataCleanManager{
   /***清除本应用内部缓存(/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)**@param
    *context
    */
   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)**@param
    *context
    */
   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);
       for(StringfilePath:filepath){
           cleanCustomCache(filePath);
       }
   }

   /***删除方法这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理**@paramdirectory*/
   privatestaticvoiddeleteFilesByDirectory(Filedirectory){
       if(directory!=null&&directory.exists()&&directory.isDirectory()){
           for(Fileitem:directory.listFiles()){
               item.delete();
           }
       }
   }
}