您的位置:首页 > 其它

开源年中国(五)清除缓存

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();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: