class CacheClearUtil {companion object {/*** 删除APP缓存*/fun clearCache(context: Context) {delDir(context.cacheDir)delDir(context.filesDir)if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {context.externalCacheDir?.let { delDir(it) }context.getExternalFilesDir(null)?.let { delDir(it) }}}/*** 获取应用缓存大小*/fun getCacheSize(context: Context): String {var cacheSize: Long = 0try {cacheSize = getFolderSize(context.cacheDir)cacheSize += getFolderSize(context.filesDir)if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {cacheSize += getFolderSize(context.externalCacheDir)cacheSize += getFolderSize(context.getExternalFilesDir(null))}} catch (e: Exception) {e.printStackTrace()cacheSize = 0}return getFormatSize(cacheSize.toDouble())}/*** 格式化文件单位*/private fun getFormatSize(size: Double): String {val kiloByte = size / 1024fif (kiloByte < 1) {return "0.00MB"}var megaByte = kiloByte / 1024fif (megaByte < 1) {return String.format(Locale.CHINA, "%.02f", kiloByte) + "KB"}val gigaByte = megaByte / 1024fif (gigaByte < 1) {if (megaByte > 10) {megaByte = 10 + (megaByte - 10) * 0.1}return String.format(Locale.CHINA, "%.02f", megaByte) + "MB"}val teraBytes = gigaByte / 1024fif (teraBytes < 1) {val result3 = BigDecimal(java.lang.Double.toString(gigaByte))return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB"}val result4 = BigDecimal(teraBytes)return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB"}/*** 获取文件夹大小*/private fun getFolderSize(file: File?): Long {var size: Long = 0try {val fileList = file!!.listFiles()for (i in fileList!!.indices) {// 如果下面还有文件if (fileList[i].isDirectory) {size += getFolderSize(fileList[i])} else {size += fileList[i].length()}}} catch (e: Exception) {e.printStackTrace()}return size}/*** 删除文件夹*/private fun delDir(dir: File) {if (dir.isDirectory) {val children = dir.list()for (i in children!!.indices) {delDir(File(dir, children[i]))}}dir.delete()}}
}

调用

CacheClearUtil.clearCache(applicationContext)
tvCache.text = CacheClearUtil.getCacheSize(applicationContext)

Android 清除缓存功能相关推荐

  1. Android清除缓存功能来实现

    我们都知道在Android的设置->应用程序中能够查看应用程序的相关信息,当中有一个功能是清除缓存. 如图: 怎么实现这些功能呢,从Android的setting源代码中能够得到相关信息. 实现 ...

  2. Android记录20-获取缓存大小和清除缓存功能

    Android开发记录20-获取缓存大小和清除缓存功能 转载请注明:IT_xiao小巫  博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要给大家分享的如何获取应用缓 ...

  3. iOS开发 - Swift实现清除缓存功能

    前言: 开发移动应用时,请求网络资源是再常见不过的功能.如果每次都去请求,不但浪费时间,用户体验也会变差,所以移动应用都会做离线缓存处理,其中已图片缓存最为常见. 但是时间长了,离线缓存会占用大量的手 ...

  4. thinkphp5 后台多选删除_TP5(thinkPHP框架)实现后台清除缓存功能示例

    本文实例讲述了TP5(thinkPHP框架)实现后台清除缓存功能.分享给大家供大家参考,具体如下: layui插件 http://www.layui.com/ 1--common的文件 /** * 循 ...

  5. Android中获取缓存大小和清除缓存功能

    前言 本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等.我们开发产品的时候,可能会有这样的一个需求清除应用 ...

  6. android清理缓存功能吗,Android清理缓存功能实现

    我们都知道在Android的设置->应用程序中可以查看应用程序的相关信息,其中有一个功能是清除缓存.如图: 怎么实现这些功能呢,从Android的setting源码中可以得到相关信息. 实现如下 ...

  7. android清理缓存功能吗,android实现清理缓存功能

    android之清理缓存实现,供大家参考,具体内容如下 一. 清理缓存首先要搞清楚清理哪些东西 1.app本身的功能比如录像,录音,更新都会产生文件,需要清理 2.app的默认缓存地址cache 二. ...

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

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

  9. android清除缓存 代码,Android应用开发之Android应用清除缓存一般清理目录和代码的教程...

    本文将带你了解Android应用开发Android应用清除缓存一般清理目录和代码的教程,希望本文对大家学Android有所帮助. 一个应用安装完成,会有缓存,缓存一般分为内部存储的和外置的,内存中路径 ...

最新文章

  1. Flutter 配置
  2. 影响架构决策的非功能性需求
  3. TF学习——TF之Tensorboard:Tensorflow之Tensorboard可视化简介、入门、使用方法之详细攻略
  4. 一种storyboard+swift实现页面跳转的方法
  5. android webview 截图,Android获取webView快照与屏幕截屏的方法 -电脑资料
  6. linux离线安装redmine_Feem:免流量跨平台文件传输工具,支持离线分享
  7. 暴露的全局方法_期末考试快到了,这4种错误的考试复习方法,越复习越差劲!...
  8. 电梯的测试用例的设计点
  9. 天大 ACM 1090. City hall
  10. 关于安装CNPM 与搭建VUE空白项目
  11. 计算机组成原理华中科技大学秦磊华,计算机组成原理(华科)chap1
  12. AIX环境安装DB2 数据库
  13. 51单片机 呼吸灯 七彩呼吸灯
  14. 后台开发笔记-在服务器上运行java后台项目
  15. java编程器宣传费湖南岚鸿驱动_EasyPRO系列通用编程器驱动程序
  16. http协议中的1xx,2xx,3xx,4xx,5xx状态码分别表示什么?列举常见错误码及含义
  17. permit-712签名
  18. 数据结构 堆 heap
  19. Linux-bash特性详解
  20. 网站添加用户风险测评

热门文章

  1. 通过Boomerang按计划在Gmail中发送或接收电子邮件(并且我们有邀请)
  2. JS 转义字符串中特殊字符
  3. 苗圩:推动形成万物互联、天地一体的网络空间
  4. A股持仓账户数创25周新高
  5. 我在亚信实习的日记(结束)
  6. 开发者反响热烈,阿里云免费试用产品增至 80 多款!
  7. 将Access转换成oracle,通过access 实现 Oracle ERP MPS 转换排产
  8. 数据可视化知识总结(一)
  9. GPS应用注意事项(摘中国3S人才网)
  10. Python基础教程之变量