我使用此代码清除已安装的应用程序缓存数据,并且它在root设备上运行良好:
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; // Request for 8GB of free space
m.invoke(pm, desiredFreeStorage , null);
Toast.makeText(this, "Cache Cleared!", Toast.LENGTH_LONG).show();
} catch (Exception e) {
txtView.setText(e.getMessage());
}
break;
}
}
但是此代码仅适用于已安装的应用程序,而不适用于系统安装的应用程序(图库),我想以编程方式清除图库应用程序的缓存,如下所示: Clear Gallery Cache
答案 0 :(得分:0)
在非root设备上是不可能的,因为从Marshmallow开始,Android不允许这样做, 请仔细阅读这篇文章,了解更多详情, https://stackoverflow.com/a/17334600/4032259