android实现清除缓存动画,Android优雅的实现缓存计算和清除缓存功能

Kotlin使用

CaheUtil.util.getCacheSize(context) //返回小数点后两位最大为MB

JAVA使用

CaheUtil.Companion.getUtil().getCacheSize(activity);

CaheUtil.Companion.getUtil().clearCache(activity);

class CaheUtil {

companion object{

val util by lazy(LazyThreadSafetyMode.SYNCHRONIZED){

CaheUtil()

}

}

/**

* 获取缓存大小(MB)

* */

fun getCacheSize(activity: Activity):String{

var finalSize: String

var cacheSize = activity.cacheDir.size()

if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {

cacheSize += activity.externalCacheDir.size()

}

finalSize = getFormatSize(cacheSize)

return finalSize

}

/**

* 清除缓存

* */

fun clearCache(activity: Activity){

activity.cacheDir.clearFile()

if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {

activity.externalCacheDir.clearFile()

}

}

/**

* 转换格式

* */

fun getFormatSize(size:Long):String{

if (size <= 0) {

return "0.00 KB"

}

var kSize = size / 1024f

if (kSize < 1) {

var result1 = BigDecimal(kSize.toString())

return result1.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString() + "KB"

}

var mSize = kSize / 1024

var result1 = BigDecimal(mSize.toString())

return result1.setScale(2, BigDecimal.ROUND_HALF_UP)

.toPlainString() + "MB"

}

/**

* 获取文件或者文件夹大小

* */

fun File.size():Long{

var size = 0L

try {

if (isFile) {

size += length()

}

if (isDirectory) {

listFiles().forEach {

size += it.size()

}

}

} catch (e: Exception) {

e.printStackTrace()

}

return size

}

/**

* 删除文件夹或文件

* */

fun File.clearFile() {

if (isFile) delete()

if (isDirectory) listFiles().forEach { it.clearFile() }

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值