android应用数据清除管理器
来源:互联网 发布:人人店分销源码 编辑:程序博客网 时间:2024/04/30 12:11
由于项目更新数据库有很大修改,需要删除本地之前的老数据库,使用新的数据库。开始我只是用名字区分了下可以正常使用,然后其他写完了有点强迫症看着以前老数据库在那里没有用不太舒服,于是写了个清空管理类把老数据删了。留着自己好查找和修改。
东西不多,直接上代码了:
package 这里是自己的包名;import android.content.Context;import android.os.Environment;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;public class FileHelper { /** * 获取data/files 目录,优先获取SD卡下的data目录 * * @param context * @return */ public static File getDataFilesDir(Context context) { if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) || !Environment.isExternalStorageRemovable()) { return context.getExternalFilesDir(null); } else { return context.getFilesDir(); } } /** * 获取data/files目录下的文件 * * @param context * @param fileName * @return */ public static File getDataFile(Context context, String fileName) { return new File(getDataFilesDir(context), fileName); } /** * 拷贝assets下的文件到data/files目录下 * * @param context * @param formFile * @param toFile * @return */ public static boolean copyAssetsDirToDataDir(Context context, String formFile, String toFile) { InputStream input = null; OutputStream output = null; try { File to = FileHelper.getDataFile(context, toFile); if (!to.exists()) { to.createNewFile(); } input = context.getAssets().open(formFile); output = new FileOutputStream(to); byte[] buffer = new byte[1024]; int length; while ((length = input.read(buffer)) > 0) { output.write(buffer, 0, length); } input.close(); output.close(); } catch (IOException e) { try { if (input != null) input.close(); if (output != null) output.close(); } catch (Exception ee) { } return false; } return true; } /** * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) * * @param context */ public static void cleanInternalCache(Context context) { deleteFilesByDirectory(context.getCacheDir()); } /** * 清除外部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 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(FileHelper.getDataFilesDir(context)); } /** * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 * * @param filePath */ public static void cleanCustomCache(String filePath) { deleteFilesByDirectory(new File(filePath)); } /** * 清除本应用所有的数据 * * @param context * @param filepath */ public static void cleanApplicationData(Context context, String... filepath) { cleanInternalCache(context); cleanExternalCache(context); cleanFiles(context); for (String filePath : filepath) { cleanCustomCache(filePath); } } /** * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 * * @param directory */ private static void deleteFilesByDirectory(File directory) { if (directory != null && directory.exists() && directory.isDirectory()) { for (File item : directory.listFiles()) { item.delete(); } } }}
注意:这些都是常用路径,如果存储时路径是自定义的修改为自定义路径即可。
为了向别人、向世界证明自己而努力拼搏,而一旦你真的取得了成绩,才会明白:人无须向别人证明什么,只要你能超越自己。
阅读全文
0 0
- android应用数据清除管理器
- Android本应用数据清除管理器
- 本应用数据清除管理器
- 本应用数据清除管理器
- 数据清除管理器
- 一键锁屏,激活设备管理器,卸载应用,清除数据
- android 清除其他应用数据
- Android清除应用缓存数据
- android清除应用缓存数据
- Android O :清除应用数据
- android 中清除应用的数据会清除哪些数据
- android 中清除应用的数据会清除哪些数据
- android退出应用时候清除数据
- 清除并发请求或者管理器数据程序
- 工具类--DataCleanManager 数据清除管理器
- Android应用将"清除数据"项变为"管理空间",自定义数据清除
- Android一键清除某个应用下的数据
- android 在清除应用数据后,会重复生成shortcut
- 线程 -----基础
- Spring注解的实现原理
- [bzoj3527]&[caioj1451][FFT]多项式
- 访问修饰符的修饰权限
- 机器学习算法总结--K均值算法
- android应用数据清除管理器
- Mysql在Spring中配置hibernate的字符编码格式
- 燕麦云说丨建国后,数据可以成精吗?
- requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
- mysqli预处理实现增删改查
- alert弹出[object Object],怎么进一步查看值
- 堆和栈的区别
- jquery的学习
- glFrustum