• /*  * 文 件 名:  DataCleanManager.java  * 描    述:  主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录  */
  • package com.test.DataClean;
  • import java.io.File;
  • import android.content.Context;
  • import android.os.Environment;
  • /**  * 本应用数据清除管理器  */
  • public class DataCleanManager {
  • /**      * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache)      *       * @param context      */
  • public static void cleanInternalCache(Context context) {
  • deleteFilesByDirectory(context.getCacheDir());
  • }
  • /**      * 清除本应用所有数据库(/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"));
  • }
  • /**      * 按名字清除本应用数据库      *       * @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());
  • }
  • /**      * 清除外部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 filepath      */
  • public static void cleanApplicationData(Context context, String... filepath) {
  • cleanInternalCache(context);
  • cleanExternalCache(context);
  • cleanDatabases(context);
  • cleanSharedPreference(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();
  • }
  • }
  • }
  • }
本文转自:http://mobile.51cto.com/abased-401823.htm

Android清除本地数据缓存代码的更多相关文章

  1. Android清除本地数据缓存代码案例

    Android清除本地数据缓存代码案例 直接上代码: /*  * 文 件 名:  DataCleanManager.java  * 描    述:  主要功能有清除内/外缓存,清除数据库,清除shar ...

  2. 【Android】Android清除本地数据缓存代码

    最近做软件的时候,遇到了缓存的问题,在网上看到了这个文章,感觉不错.分享给大家看看 文章出处:http://www.cnblogs.com/rayray/p/3413673.html /* * 文 件 ...

  3. iOS - LocalCache 本地数据缓存

    1.自定义方式本地数据缓存 1.1 自定义缓存 1 沙盒路径下的 Library/Caches 用来存放缓存文件,保存从网络下载的请求数据,后续仍然需要继续使用的文件,例如网络下载的离线数据,图片,视 ...

  4. 微信小程序开发:学习笔记[9]——本地数据缓存

    微信小程序开发:学习笔记[9]——本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...

  5. 如何清除本地DNS缓存 windows

    在您的网站迁移服务器时需要对域名所指向的IP进行更改,这时候在本机访问网站时就需要清除本地的DNS缓存信息,那么怎样清除呢? 首先我们应该明白清除DNS缓存信息的原理:当计算机对域名访问时并不是每次访 ...

  6. 使用SQLite做本地数据缓存的思考

    前言 在一个分布式缓存遍地都是的环境下,还讲本地缓存,感觉有点out了啊!可能大家看到标题,就没有想继续看下去的欲望了吧.但是,本地缓存的重要性也是有的! 本地缓存相比分布式缓存确实是比较out和比较 ...

  7. Vista/Win7以上系统查看和清除本地DNS缓存新方法

    你是否因修改网站DNS解析后,却因本机DNS缓存而需要等待... 你是否遇到修改了本机的hosts文件后,必须重起firefox和ie才起作用... 其实只要清空DNS缓存这些问题都可以解决. 查看D ...

  8. Android 清除本地缓存

    主要功能:清除内.外缓存,清除数据库,清除Sharepreference,清除files和清除自定义目录 public class DataCleanManager { //清除本应用内部缓存(/da ...

  9. [2]项目创建-使用C#.NET开发基于本地数据缓存的PC客户端

    1.新建项目->已安装->模板->Visual c#->Windows桌面->Windows窗体应用程序,截图如下: 图中1:输入项目名称-“MoneyNotes”,图中 ...

随机推荐

  1. Eclipse - 添加 PyDev 插件

    1. 安装PyDev插件 启用Eclipse.在Help菜单中,选择Install New Software···, 然后点击Add按钮.在Location中输入:http://pydev.org/u ...

  2. jstl中添加自定义的函数

    由于jstl中提供的函数未必能够满足我们的要求,而我们又希望能够像jstl提供的函数那样能够轻松方便使用,那么可以通过自定义函数补充jsltl函数.给jstl添加自定义函数需要以下步骤: 定义一个st ...

  3. ionic 项目分享【转】No.3

    写在文章前:由于最近研究ionic框架,深感这块的Demo寥寥可数,而大家又都藏私,堂堂天朝,何时才有百家争鸣之象,开源精神吾辈当仁不让! 原文地址暂时忘记了 ,如果有知道的麻烦在评论处帮忙说一下 , ...

  4. H TML5 之 (6)下雨效果

    在对HTML5进行研究之后,有了一点想法,思考出游戏其实感觉就是四个步骤 1.创建一个你需要的对象,赋予属性(一些影响方法的属性),方法(运动,叫....) 2.实例化这个对象,让它成为一个或者多个个 ...

  5. ArcGIS 设置地图显示范围大小

    Arcmap的FullExtent默认是地图加载的时候的extent.其实这个fullExtent是可以设置的. 打开ArcMap,选择左边图例的Layers ,右键点击,选择“Properties. ...

  6. Handler 原理分析和使用(一)

    我为什么写Handler,原因主要还在于它在整个 Android 应用层面非常之关键,他是线程间相互通信的主要手段.最为常用的是其他线程通过Handler向主线程发送消息,更新主线程UI. 下面是一个 ...

  7. C++专题 - 面向对象总结

    1.         什么是类?什么是对象?对象与类的关系是什么? 答:类就是相同的数据和相同的一组对象的集合,即类是对具有相同数据结构和相同操作的一类对象的描述: 对象是描述其属性的数据以及对这些数 ...

  8. windows phone 之手势识别(Manipulation)

    在Windows Phone 7的多触摸屏上可以检测到至少四根同时存在的手指,并且一起操作使触摸屏充分发挥效果. 在silverlight开发中通过事件来实现触屏事件的检测,包括低级别的和高级别的接口 ...

  9. Windows phone 之XML序列化与反序列化

    为什么要做序列化和反序列化? 一个回答: 我们都知道对象是不能在网络中直接传输的,不过还有补救的办法.XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储 ...

  10. Excel里面将头尾第一个字母保留,去除中间的用*号代替,主要是REPT函数的应用,一开始我还以为要自己写个自定义函数

    Excel里面将头尾第一个字母保留,去除中间的用*号代替,主要是REPT函数的应用,一开始我还以为要自己写个自定义函数 =LEFT(A1,1)&REPT("*",(LEN( ...