本应用数据清除管理器
来源:互联网 发布:dns域名劫持工具 编辑:程序博客网 时间:2024/04/30 15:06
package com.qihoo360.byod.utils;
import java.io.File;
import android.content.Context;
import android.os.Environment;
import android.util.Log;
/**
* 本应用数据清除管理器
*
*/
public class DataCleanManager {
private static final String TAG = "DataCleanManager";
/**
* get app private data dir: /data/data/PackageName/, eg /data/data/com.xxx.xxx/
* @param context
* @return
*/
public static String getDataDir(Context context) {
return "/data/data/" + context.getPackageName() + "/";
//return context.getFilesDir().getParent();
}
/** * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * @param context */
public static void cleanInternalCache(Context context) {
deleteFilesByDirectory(getDataDir(context) + "/cache/"/*context.getCacheDir()*/);
}
/** * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) * * @param context */
public static void cleanDatabases(Context context) {
deleteFilesByDirectory(new File(getDataDir(context) + "/databases"));
}
/**
* * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) * * @param
* context
*/
public static void cleanSharedPreference(Context context) {
deleteFilesByDirectory(new File(getDataDir(context) + "/shared_prefs"));
}
/** * 按名字清除本应用数据库 * * @param context * @param dbName */
public static void cleanDatabaseByName(Context context, String dbName) {
context.deleteDatabase(dbName);
}
/** * 清除/data/data/com.xxx.xxx/files下的内容 * * @param context */
public static void cleanFiles(Context context) {
deleteFilesByDirectory(/*context.getFilesDir()*/getDataDir(context) + "/files/");
deleteFile(new File(getDataDir(context) + "/files/icon1.jpg"));
}
/** * 清除下的内容 * * @param context */
public static void cleanExternalCacheDir(Context context) {
deleteFilesByDirectory(context.getExternalCacheDir());
}
/**
* * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) * * @param
* context
*/
public static void cleanExternalCache(Context context) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
deleteFilesByDirectory(context.getExternalCacheDir());
}
}
/** * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 * * @param filePath */
public static void cleanCustomCache(String filePath) {
deleteFilesByDirectory(new File(filePath));
}
/** * 清除本应用所有的数据 * * @param context * @param filePaths */
public static void cleanApplicationData(Context context, String... filePaths) {
cleanInternalCache(context);
cleanExternalCache(context);
cleanExternalCacheDir(context);
cleanDatabases(context);
cleanSharedPreference(context);
cleanFiles(context);
if (filePaths != null && filePaths.length > 0) {
for (String filePath : filePaths) {
cleanCustomCache(filePath);
}
}
}
private static int deleteFilesByDirectory(String directoryPath) {
return deleteFilesByDirectory(new File(directoryPath));
}
/** * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * * @param directory */
private static int deleteFilesByDirectory(File directory) {
try {
int count = 0;
int delCount = 0;
if (directory != null && directory.exists()) {
if (directory.isDirectory()) {
File[] files = directory.listFiles();
if (files == null) return -1;
count = files.length;
if (count > 0) {
for (File file : files) {
if (file.isFile()) {
boolean deleted = deleteFile(file);
if (deleted) {
delCount++;
}
} else {
int count2 = deleteFilesByDirectory(file);
count += count2;
Log.w(TAG, "Delete directory by recursion: " + file + ", count2= " + count2);
}
}
} else {
boolean del = deleteFile(directory);
}
} else {
count = 1;
boolean del = deleteFile(directory);
}
}
Log.i(TAG, "deleteFilesByDirectory: " + directory + ", files count= " + count);
return count;
} catch (Exception e) {
Log.w(TAG, "deleteFilesByDirectory: " + e.getMessage());
return 0;
}
}
private static boolean deleteFile(File file) {
boolean deleted = false;
if (file != null && file.exists() && file.isFile()) {
deleted = file.delete();
if (deleted) {
Log.i(TAG, "Deleted file: " + file);
} else {
Log.w(TAG, "Deleted FAILED file: " + file);
}
} else {
Log.w(TAG, "Not exists or invalid real file: " + file);
}
return deleted;
}
import java.io.File;
import android.content.Context;
import android.os.Environment;
import android.util.Log;
/**
* 本应用数据清除管理器
* <p> 描 述: 主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录
* java文件下载地址:http://download.csdn.net/download/zhanghao_hulk/9969484
*
*/
public class DataCleanManager {
private static final String TAG = "DataCleanManager";
/**
* get app private data dir: /data/data/PackageName/, eg /data/data/com.xxx.xxx/
* @param context
* @return
*/
public static String getDataDir(Context context) {
return "/data/data/" + context.getPackageName() + "/";
//return context.getFilesDir().getParent();
}
/** * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * @param context */
public static void cleanInternalCache(Context context) {
deleteFilesByDirectory(getDataDir(context) + "/cache/"/*context.getCacheDir()*/);
}
/** * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) * * @param context */
public static void cleanDatabases(Context context) {
deleteFilesByDirectory(new File(getDataDir(context) + "/databases"));
}
/**
* * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) * * @param
* context
*/
public static void cleanSharedPreference(Context context) {
deleteFilesByDirectory(new File(getDataDir(context) + "/shared_prefs"));
}
/** * 按名字清除本应用数据库 * * @param context * @param dbName */
public static void cleanDatabaseByName(Context context, String dbName) {
context.deleteDatabase(dbName);
}
/** * 清除/data/data/com.xxx.xxx/files下的内容 * * @param context */
public static void cleanFiles(Context context) {
deleteFilesByDirectory(/*context.getFilesDir()*/getDataDir(context) + "/files/");
deleteFile(new File(getDataDir(context) + "/files/icon1.jpg"));
}
/** * 清除下的内容 * * @param context */
public static void cleanExternalCacheDir(Context context) {
deleteFilesByDirectory(context.getExternalCacheDir());
}
/**
* * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) * * @param
* context
*/
public static void cleanExternalCache(Context context) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
deleteFilesByDirectory(context.getExternalCacheDir());
}
}
/** * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 * * @param filePath */
public static void cleanCustomCache(String filePath) {
deleteFilesByDirectory(new File(filePath));
}
/** * 清除本应用所有的数据 * * @param context * @param filePaths */
public static void cleanApplicationData(Context context, String... filePaths) {
cleanInternalCache(context);
cleanExternalCache(context);
cleanExternalCacheDir(context);
cleanDatabases(context);
cleanSharedPreference(context);
cleanFiles(context);
if (filePaths != null && filePaths.length > 0) {
for (String filePath : filePaths) {
cleanCustomCache(filePath);
}
}
}
private static int deleteFilesByDirectory(String directoryPath) {
return deleteFilesByDirectory(new File(directoryPath));
}
/** * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * * @param directory */
private static int deleteFilesByDirectory(File directory) {
try {
int count = 0;
int delCount = 0;
if (directory != null && directory.exists()) {
if (directory.isDirectory()) {
File[] files = directory.listFiles();
if (files == null) return -1;
count = files.length;
if (count > 0) {
for (File file : files) {
if (file.isFile()) {
boolean deleted = deleteFile(file);
if (deleted) {
delCount++;
}
} else {
int count2 = deleteFilesByDirectory(file);
count += count2;
Log.w(TAG, "Delete directory by recursion: " + file + ", count2= " + count2);
}
}
} else {
boolean del = deleteFile(directory);
}
} else {
count = 1;
boolean del = deleteFile(directory);
}
}
Log.i(TAG, "deleteFilesByDirectory: " + directory + ", files count= " + count);
return count;
} catch (Exception e) {
Log.w(TAG, "deleteFilesByDirectory: " + e.getMessage());
return 0;
}
}
private static boolean deleteFile(File file) {
boolean deleted = false;
if (file != null && file.exists() && file.isFile()) {
deleted = file.delete();
if (deleted) {
Log.i(TAG, "Deleted file: " + file);
} else {
Log.w(TAG, "Deleted FAILED file: " + file);
}
} else {
Log.w(TAG, "Not exists or invalid real file: " + file);
}
return deleted;
}
}
阅读全文
1 0
- 本应用数据清除管理器
- 本应用数据清除管理器
- Android本应用数据清除管理器
- android应用数据清除管理器
- 数据清除管理器
- 一键锁屏,激活设备管理器,卸载应用,清除数据
- 清除并发请求或者管理器数据程序
- 工具类--DataCleanManager 数据清除管理器
- android 清除其他应用数据
- Android清除应用缓存数据
- 清除App应用缓存数据
- android清除应用缓存数据
- Android O :清除应用数据
- 设备管理器进行锁屏和数据清除等功能
- android 中清除应用的数据会清除哪些数据
- android 中清除应用的数据会清除哪些数据
- android 版本更新 同时清除旧版本数据
- 清除应用用户数据,还原默认设置
- win7x64下的redis安装与使用
- 移动端适配 user-Agent
- 2008-2009 ACM-ICPC, NEERC, Moscow Subregional Contest B Bankrupt Broker
- 使用Django + Vue.js快速而优雅地构建前后端分离项目
- 搭建redis
- 本应用数据清除管理器
- http://blog.csdn.net/snow_wu/article/details/53172721
- java连接数据库进行增添数据的不同写法
- 某服务器产生500后的问题解决思路和分析
- linux中$的意义与用法
- 集成学习之AdaBoost
- 《How Tomcat Works》阅读笔记一
- HUST 1017(DLX)
- C 指针数组和数组指针