android 清除所有缓存,Android:清除所有应用的缓存?

这是一种不需要IPackageDataObserver.aidl的方法:

PackageManager pm = getPackageManager();

// Get all methods on the PackageManager

Method[] methods = pm.getClass().getDeclaredMethods();

for (Method m : methods) {

if (m.getName().equals("freeStorage")) {

// Found the method I want to use

try {

long desiredFreeStorage = 8 * 1024 * 1024 * 1024; // Request for 8GB of free space

m.invoke(pm, desiredFreeStorage , null);

} catch (Exception e) {

// Method invocation failed. Could be a permission problem

}

break;

}

}

你将需要在你的清单中:

这要求Android清除足够的缓存文件,以便有8GB的免费。如果您将此数字设置得足够高,您应该实现您想要的(Android将删除缓存中的所有文件)。

这样做的方式是Android在所有应用程序的缓存目录中保留所有文件的LRU(最近最少使用)列表。当您调用freeStorage()时,它会检查存储容量(在这种情况下为8GB)是否可用于缓存文件。如果没有,它将首先删除最旧的文件,从应用程序缓存目录中删除文件。它会继续删除文件,直到不再需要删除任何文件,或者已经释放了您请求的存储空间(在本例中为8GB)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值