概念:
清除数据、清除缓存的区别
清除数据主要是清除用户配置,比如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. mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介
  2. 在EXCEL中怎么将多个CSV文件合并成一个文件
  3. 备考一天速通计算机三级网络技术
  4. 双指针算法之滑动窗口 | 力扣76.最小覆盖字串
  5. Union-Find 算法应用
  6. 去除 position:fixed 抖动的方法
  7. 聊一聊Jmeter的参数化
  8. SignalR的性能监测与服务器的负载测试
  9. 开启httponly之后登陆失败_二次元约会模拟《少女都市》正式版登陆Steam 橘势大好...
  10. 产品新人没有完整项目经验?这篇文章帮你打开思路
  11. Mac os更新系统后安装scrapy报错error: command ‘xcrun‘ failed with exit status 1
  12. 【转】缺陷与出路—一个游戏开发者的反思
  13. Affinity propagation 近邻传播算法
  14. 实时车辆行人多目标检测与跟踪系统-上篇(UI界面清新版,Python代码)
  15. C#合并两个(多个)集合
  16. java后台如何给数据给前端_JAVA后台 关于如何从后台传递信息在jsp前端页面显示...
  17. mysql中where子句不区分大小写
  18. 什么是电气一次、二次?电气一次二次的分类
  19. 「工具」三分钟了解一款在线流程绘制工具:Whimsical
  20. 基于MIPI的高性能成像系统

热门文章

  1. ETC系统组成部分 ETC+OBU+RUS缺一不可
  2. windows10网络看不到其他计算机,win10家庭版局域网看不到其他电脑怎么办
  3. Mac笔记本插上电源后无法充电,拔掉电源后依然显示【充电中】,解决方法重置SMC
  4. 【FOJ】Problem 1489 密码
  5. 1-02 C++起步: 用结构组织数据 —— 数据封装初步
  6. 从控制理论的根轨迹法和稳定性分析谈到舵机PD控制代码实现
  7. lightgbm一些解读网站
  8. 生财有术:程序员接单平台
  9. SecureCRT之激活教程
  10. (一)Open Image Dataset V5概述