android - 有没有办法以编程方式清除所有缓存文件?
问题描述
我正在开发一个删除所有程序缓存的程序。这已经被问过很多次了,但是这些解决方案要么在较新版本的 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 设备。有人知道代码问题吗?
谢谢。
解决方案
此意图应使用 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);
推荐阅读
- weblogic12c - Weblogic 无法启动
- mongodb - MongoDb 使用数组键上的乘法更新数组元素
- java - spring boot starter 邮件空指针异常
- c++ - 将模板类重新解释为 const 版本
- python - 我正在尝试在 Mac 上安装 pyaudio 并收到以下错误
- tomcat - 如何将战争文件从 Jenkins 服务器复制到 GCP 云上运行的 Tomcat 服务器
- graphql - 如何选择最佳策略来使用 AWS Cognito 用户池配置基于角色的授权?
- php - 删除帖子重定向到另一个路由
- python - 将图集图像加载到 Kivy 项目时出错
- typescript - 在 Typescript 中更改数组项的类型