开源年中国(五)清除缓存
2016-06-19 11:15
363 查看
删除数据库和缓存文件下的数据
/** * 清除app缓存 * * @param activity */ public static void clearAppCache(Activity activity) { final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 1) { AppContext.showToastShort("缓存清除成功"); } else { AppContext.showToastShort("缓存清除失败"); } } }; //开启线程,进行多线程处理 new Thread() { @Override public void run() { Message msg = new Message(); try { AppContext.getInstance().clearAppCache(); msg.what = 1; } catch (Exception e) { e.printStackTrace(); msg.what = -1; } handler.sendMessage(msg); } }.start(); }
/** * 清除app缓存 */ public void clearAppCache() { DataCleanManager.cleanDatabases(this); // 清除数据缓存 DataCleanManager.cleanInternalCache(this); // 2.2版本才有将应用缓存转移到sd卡的功能 if (isMethodsCompat(android.os.Build.VERSION_CODES.FROYO)) { DataCleanManager.cleanCustomCache(MethodsCompat .getExternalCacheDir(this)); } // 清除编辑器保存的临时内容 Properties props = getProperties(); for (Object key : props.keySet()) { String _key = key.toString(); if (_key.startsWith("temp")) removeProperty(_key); } Core.getKJBitmap().cleanCache(); }
/** * 清楚本应用所有数据库 * (/data/data/com.xxx.xxx/databases) * @param context */ public static void cleanDatabases(Context context) { deleteFilesByDirectory(new File("/data/data/" + context.getPackageName() + "/databases")); } /** * 清除本应用SharedPreference * (/data/data/com.xxx.xxx/shared_prefs) * @param context */ public static void cleanSharedPreference(Context context) { deleteFilesByDirectory(new File("/data/data/" + context.getPackageName() + "/shared_prefs")); }
/** * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * @param directory */ private static void deleteFilesByDirectory(File directory) { if (directory != null && directory.exists() && directory.isDirectory()) { for (File child : directory.listFiles()) { if (child.isDirectory()) { deleteFilesByDirectory(child); } child.delete(); } } }
相关文章推荐
- 善于利用win7系统自带sysprep工具重置系统的方法 (去SID)
- GIT使用教程与基本原理
- WLW离线编辑器的安装与使用
- ajax调后台servlet,把返回json用vue做绑定
- 罗马数字转换成整数
- 网站收藏
- Linux 下的DMA浅析
- 第十六周学习进度表
- Increasing Triplet Subsequence
- 第四专题 Problem E
- Git基础使用教程:第一个Git项目
- 【南理oj】8 - 一种排序(优先队列)
- U盘删除后又需使用,无需拔下重启u盘的方法
- mapreduce框架详解
- 使用Eclipse把java文件打包成jar
- Linux下test命令使用
- 6、JSP语言基础之---JSP内置对象
- 指针指向字符串常量和数组存放字符串常量(char *p="abcd", char p[]="abcd")
- C#中的InitializeComponent()方法
- 如何用QUnit来测试JavaScript代码