以编程方式清除android中的图像缓存

时间:2015-02-24 10:43:44

标签: android caching

我想在我的android应用程序中清除缓存并实现这一点我使用了下面给出的两种方法,但是在调用deleteCache(getApplicationContext())后缓存没有被清除。这个问题在SO中被多次询问,但没有一个答案似乎对我有帮助。以下是我使用的方法。谢谢你的帮助。

public static void deleteCache(Context context) {

    try {

        File dir = context.getCacheDir();

        if (dir != null && dir.isDirectory()) {

            deleteDir(dir);
        }

    } catch (Exception e) {}
}

public static boolean deleteDir(File dir) {

    if (dir != null && dir.isDirectory()) {

        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();
}

1 个答案:

答案 0 :(得分:0)

由于您没有提及您所面临的任何特定日志或问题,[&#34;没有工作&#34;不是具体问题:)]

试试这个 -

private void deleteRecursive(File fileOrDirectory) {

        if (fileOrDirectory.isDirectory())
            for (File child : fileOrDirectory.listFiles())
                deleteRecursive(child);

        fileOrDirectory.delete();

    }
// from the point you want to clear-

deleteRecursive(context.getCacheDir());