概念:
清除数据、清除缓存的区别
清除数据主要是清除用户配置,比如SharedPreferences,数据库等等,这些数据都是在程序运行过程中保存的用户配置信息,清除数据后,下次进入程序就和第一次进入程序时一样

缓存是程序运行时的临时存储空间,它可以存放从网络下载的临时图片,从用户角度触发清除缓存对用户并没有太大的影响,但是清除缓存后用户再次使用该APP时,由于本地缓存已经被清理,所有的数据需要重新从网络上获取。为了在清除的时候能够正常清除与应用相关的缓存,请将缓存文件存放在getCacheDir()或者 getExternalCacheDir()路径下。

public class DataCleanUtils {
/**
* 获取缓存大小
*
* @param context
* @return
*/
public static String getTotalCacheSize(Context context) throws Exception {
long cacheSize = getFolderSize(context.getCacheDir());
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
cacheSize += getFolderSize(context.getExternalCacheDir());
}
return getFormatSize(cacheSize);
}

/*** 清除缓存** @param context*/
public static void clearAllCache(Context context) {deleteDir(context.getCacheDir());if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {deleteDir(context.getExternalCacheDir());}
}private static boolean deleteDir(File dir) {if (dir != null && dir.isDirectory()) {String[] children = dir.list();for (int i = 0; i < children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if (!success) {return false;}}}return dir.delete();
}// 获取文件大小
//Context.getExternalFilesDir() --> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据
//Context.getExternalCacheDir() --> SDCard/Android/data/你的应用包名/cache/目录,一般存放临时缓存数据
public static long getFolderSize(File file) throws Exception {long size = 0;try {File[] fileList = file.listFiles();for (int i = 0; i < fileList.length; i++) {// 如果下面还有文件if (fileList[i].isDirectory()) {size = size + getFolderSize(fileList[i]);} else {size = size + fileList[i].length();}}} catch (Exception e) {e.printStackTrace();}return size;
}/*** 格式化单位** @param size* @return*/
public static String getFormatSize(double size) {double kiloByte = size / 1024;if (kiloByte < 1) {

// return size + “Byte”;
return “0K”;
}

    double megaByte = kiloByte / 1024;if (megaByte < 1) {BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "K";}double gigaByte = megaByte / 1024;if (gigaByte < 1) {BigDecimal result2 = new BigDecimal(Double.toString(megaByte));return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "M";}double teraBytes = gigaByte / 1024;if (teraBytes < 1) {BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";}BigDecimal result4 = new BigDecimal(teraBytes);return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString()+ "TB";
}

}

当然,上面只是清除了data/data/com.xxx.xxx/files下的内容和data/data/com.xxx.xxx/cache下的文件,

我们的应用程序一般会产生以下几种类型的数据:

file-普通的文件存储

database-数据库文件(.db文件)

sharedPreference-配置数据(.xml文件)

cache-图片缓存文件,

但是开发中有可能将一些登录信息,例如账号密码存储到sp中,所以这些数据的删除要根据实际项目需求决定。

当然,你也有可能申请SDCard的存储,所以根据自己SD卡的路径进行相应删除。

Android清除缓存,清除数据相关推荐

  1. 微信小程序清除缓存clearStorageSync和removeStorageSync的区别 清除缓存问题 数据缓存详解

    wx.setStorage(key)和wx.setStorageSync(key) 将数据存储在本地缓存中指定的 key 中.会覆盖掉原来该 key 对应的内容.除非用户主动删除或因存储空间原因被系统 ...

  2. ionic应用程序文件保存和清除缓存

    ionic应用程序文件保存和清除缓存 一.简介 在开发ionic应用程序中,我们难免会涉及到文件的下载,并且将下载的文件(可以是png,pdf,zip等文件)保存到本地,时间一久,文件堆积过多,就需要 ...

  3. html5清除手机页面缓存文件夹,WebView自动缓存-清除缓存

    iOS的Webview加载HTML时会自动缓存JS.CSS等文件,当下次加载HTML时会根据请求的缓存策略是否使用缓存本地的JS和CSS,如果本地有缓存,那么直接返回本地资源(判断是否过期):如果没有 ...

  4. 服务器中Redis清除缓存

    服务器中Redis清除缓存 清除缓存: //进入安装redis 的目录 进入 对应的 redis-cli //有设置的密码就输入密码登录,没有就直接进入 auth [username] passwro ...

  5. ajax 自动清缓存,ajax 清除缓存

    $.ajax({ url : actionUrl , beforeSend :function(xmlHttp){  // deforeSend 是请求前清除缓存  ,如果没有缓存也不使用before ...

  6. WebView自动H5缓存-清除缓存ios

    iOS的Webview加载HTML时会自动缓存JS.CSS等文件,当下次加载HTML时会根据请求的缓存策略是否使用缓存本地的JS和CSS,如果本地有缓存,那么直接返回本地资源(判断是否过期):如果没有 ...

  7. iOS 设置中清除缓存功能

    绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法.清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,如下 ...

  8. android清除缓存有哪些,Android中的清除数据和清除缓存有什么区别,它们分别清除了哪些文件...

    清除数据和清除缓存的区别 反射调用系统隐藏接口,需要准备的东西: 一.在AndroidManifest.xml中的manifest标签下添加声明 android:sharedUserId=" ...

  9. Android清除缓存、清除数据

    一.概念 清除数据.清除缓存的区别 清除数据主要是清除用户配置,比如SharedPreferences.数据库等等,这些数据都是在程序运行过程中保存的用户配置信息,清除数据后,下次进入程序就和第一次进 ...

最新文章

  1. DRF (Django REST framework) 中的视图类
  2. Java实现pdf和Excel的生成及数据动态插入、导出
  3. IN-12辉光数码管:俄罗斯进口的器件
  4. no connection could be made because the target machine actively refused it.问题解决
  5. 2 WM配置-企业结构-分配-给工厂和库存地点分配仓库号
  6. 95-10-025-启动-BrokerId相关
  7. oracle数据设置为ull,IMX6ULL启动和烧写
  8. 程序员版的《后来的我们》,结局竟是……
  9. 详解如何实现最基本的AJAX框架
  10. Moorhuhn Kart 2 XXL Maps
  11. R8500 MPv2 版本 刷梅林改版固件
  12. 微铺子点单系统具体介绍 - 争做国内最专业的微信商店平台,微信外卖订餐系统!...
  13. 部署3PAR VSP5.0.9.2监控3PAR实时邮件告警状态
  14. c#窗体开发俄罗斯方块小游戏
  15. 您可能是盗版软件的受害者——解决办法
  16. N 个Android 视频教程免费下载
  17. burpSuit抓取app的数据包
  18. Windows Server 2008启用禁用IE增强的安全配置
  19. 【Linux】动态库与静态库
  20. 飞速创软亮相南方信息大会,获评年度CIO优选数字化服务商

热门文章

  1. 备份Windows10的激活信息
  2. 【HANA系列】SAP HANA 2.0简介
  3. FORESEE中国大陆首发512Mb SPI NAND Flash
  4. 2022A特种设备相关管理(锅炉压力容器压力管道)操作证考试题库及模拟考试
  5. MySQL5.7 Waiting FOR TABLE FLUSH
  6. DTOJ 4021 西行妖下
  7. CPU体系结构 (转载) 向原创致敬
  8. SteamVR---UI交互
  9. 注意力之spatial attention
  10. 利用mac的launchd,开机后定时启动shell脚本