首页 > 解决方案 > 有没有办法以编程方式清除所有缓存文件?

问题描述

我正在开发一个删除所有程序缓存的程序。这已经被问过很多次了,但是这些解决方案要么在较新版本的 Android 中被删除,要么没有清除所有缓存,或者他们需要root设备。

我在api 30中添加的Android 文档中找到了一个解决方案,应该使用它来启动,以便用户知道哪个应用程序正在请求清除缓存。此操作需要在清单中。Activity#startActivityForResult(Intent, int)Manifest.permission.MANAGE_EXTERNAL_STORAGE

我在我的清单中有这个权限,我在我的 OnClick 方法中使用了以下代码:

Intent clearCache = new Intent();
clearCache.setAction(ACTION_CLEAR_APP_CACHE);
startActivity(clearCache);

但它不适用于我的 Android 11 设备。有人知道代码问题吗?

谢谢。

标签: androidandroid-studiocaching

解决方案


此意图应使用 Activity#startActivityForResult(Intent, int) 启动,以便用户知道哪个应用程序正在请求清除缓存。

检查文档

使用“startActivityForResult”而不是“startActivity”:

//Get cache dialog
int requestCode = 999;
Intent intent = new Intent(StorageManager.ACTION_CLEAR_APP_CACHE);
activity.startActivityForResult(intent, requestCode);

推荐阅读