请帮助清除android中的缓存。我可以在Android 6.0版上使用以下代码删除缓存。当我在7.1中尝试时,没有任何变化。我想念什么?
//method to delete cache- issue reported
public static void deleteCache(Context context) {
try {
File dir = context.getCacheDir();
deleteDir(dir);
Log.d("cache clear", "cache delete "+dir);
} catch (Exception e) { e.printStackTrace();}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
Log.d("cache clear", "cache delete 1");
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
return dir.delete();
} else if(dir!= null && dir.isFile()) {
return dir.delete();
} else {
return false;
}
}
答案 0 :(得分:0)
通过Android API 19,您可以执行以下操作:
((ActivityManager)context.getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData();
官方文档: clearApplicationUserData 已在API级别19中添加
布尔布尔值clearApplicationUserData()
允许应用程序从磁盘擦除其自身的数据。这等效于用户选择从设备设置UI中清除应用程序的数据。它会删除与该应用程序关联的所有动态数据-私有数据和外部存储中私有区域中的数据-但不会删除已安装的应用程序本身,也不会删除任何OBB文件。它还会撤消该应用程序已获取的所有运行时权限,清除所有通知并删除与此应用程序相关的所有Uri授予。
Returns
boolean true if the application successfully requested that the application's data be erased; false otherwise.
EDIT 在您的活动中不要拨打
deleteCache(this)
但致电
deleteCache(getApplicationContext())