如何清除Android版本7.1中的缓存

时间:2018-10-01 10:09:00

标签: android

请帮助清除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;
        }
    }

1 个答案:

答案 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())