我正在开发一个程序,删除所有程序的缓存。这个问题以前已经被问过很多次了,但这些解决方案要么在新版本的安卓系统中被删除,要么没有清除所有缓存,要么需要root设备。
我在Android文档中找到了一个解决方案,该解决方案添加了api 30,应该使用Activity#startActivityForResult(Intent, int)
启动,这样用户就可以知道哪个应用程序正在请求清除缓存。此操作需要清单中的CCD_ 2。
我在我的清单中有这个权限,我在OnClick方法中使用以下代码:
Intent clearCache = new Intent();
clearCache.setAction(ACTION_CLEAR_APP_CACHE);
startActivity(clearCache);
但它在我的Android 11设备上不起作用。有人知道代码问题吗?
谢谢。
应该使用活动#startActivityForResult(Intent,int(,以便用户知道哪个应用程序正在请求清除缓存。
查看文档。
使用";startActivityForResult";而不是";startActivity":
//Get cache dialog
int requestCode = 999;
Intent intent = new Intent(StorageManager.ACTION_CLEAR_APP_CACHE);
activity.startActivityForResult(intent, requestCode);