Android清除缓存,清除数据
概念:
清除数据、清除缓存的区别
清除数据主要是清除用户配置,比如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清除缓存,清除数据相关推荐
- 微信小程序清除缓存clearStorageSync和removeStorageSync的区别 清除缓存问题 数据缓存详解
wx.setStorage(key)和wx.setStorageSync(key) 将数据存储在本地缓存中指定的 key 中.会覆盖掉原来该 key 对应的内容.除非用户主动删除或因存储空间原因被系统 ...
- ionic应用程序文件保存和清除缓存
ionic应用程序文件保存和清除缓存 一.简介 在开发ionic应用程序中,我们难免会涉及到文件的下载,并且将下载的文件(可以是png,pdf,zip等文件)保存到本地,时间一久,文件堆积过多,就需要 ...
- html5清除手机页面缓存文件夹,WebView自动缓存-清除缓存
iOS的Webview加载HTML时会自动缓存JS.CSS等文件,当下次加载HTML时会根据请求的缓存策略是否使用缓存本地的JS和CSS,如果本地有缓存,那么直接返回本地资源(判断是否过期):如果没有 ...
- 服务器中Redis清除缓存
服务器中Redis清除缓存 清除缓存: //进入安装redis 的目录 进入 对应的 redis-cli //有设置的密码就输入密码登录,没有就直接进入 auth [username] passwro ...
- ajax 自动清缓存,ajax 清除缓存
$.ajax({ url : actionUrl , beforeSend :function(xmlHttp){ // deforeSend 是请求前清除缓存 ,如果没有缓存也不使用before ...
- WebView自动H5缓存-清除缓存ios
iOS的Webview加载HTML时会自动缓存JS.CSS等文件,当下次加载HTML时会根据请求的缓存策略是否使用缓存本地的JS和CSS,如果本地有缓存,那么直接返回本地资源(判断是否过期):如果没有 ...
- iOS 设置中清除缓存功能
绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法.清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,如下 ...
- android清除缓存有哪些,Android中的清除数据和清除缓存有什么区别,它们分别清除了哪些文件...
清除数据和清除缓存的区别 反射调用系统隐藏接口,需要准备的东西: 一.在AndroidManifest.xml中的manifest标签下添加声明 android:sharedUserId=" ...
- Android清除缓存、清除数据
一.概念 清除数据.清除缓存的区别 清除数据主要是清除用户配置,比如SharedPreferences.数据库等等,这些数据都是在程序运行过程中保存的用户配置信息,清除数据后,下次进入程序就和第一次进 ...
最新文章
- mysql第四章_MySQL必知必会--第二章~第四章--MySQL简介
- 在EXCEL中怎么将多个CSV文件合并成一个文件
- 备考一天速通计算机三级网络技术
- 双指针算法之滑动窗口 | 力扣76.最小覆盖字串
- Union-Find 算法应用
- 去除 position:fixed 抖动的方法
- 聊一聊Jmeter的参数化
- SignalR的性能监测与服务器的负载测试
- 开启httponly之后登陆失败_二次元约会模拟《少女都市》正式版登陆Steam 橘势大好...
- 产品新人没有完整项目经验?这篇文章帮你打开思路
- Mac os更新系统后安装scrapy报错error: command ‘xcrun‘ failed with exit status 1
- 【转】缺陷与出路—一个游戏开发者的反思
- Affinity propagation 近邻传播算法
- 实时车辆行人多目标检测与跟踪系统-上篇(UI界面清新版,Python代码)
- C#合并两个(多个)集合
- java后台如何给数据给前端_JAVA后台 关于如何从后台传递信息在jsp前端页面显示...
- mysql中where子句不区分大小写
- 什么是电气一次、二次?电气一次二次的分类
- 「工具」三分钟了解一款在线流程绘制工具:Whimsical
- 基于MIPI的高性能成像系统