如何通过代码清除应用程序的数据缓存

时间:2010-12-29 10:19:32

标签: android

我想清除正在增加的应用程序的数据缓存程序,现在我正在清除Settings-> Applications-> Manage Application-> My Application-> Clear Cache。

但是我想通过程序化来做,请帮助我。

2 个答案:

答案 0 :(得分:7)

当您调用此类时,它将计算所有已安装的应用程序缓存文件,然后只需从手机中删除它,这些文件不会受到数据库或您的个人数据的影响。它会提升您的手机速度并加快速度,删除缓存文件

public class MyApplicationClass extends Application {

    private static MyApplicationClass instance;

    @Override
    public void onCreate() 
    {
        super.onCreate();
        instance = this;
    }

    public static MyApplication getInstance() {
        return instance;
    }

    public void clearApplicationData() {
        File cache = getCacheDir();
        File appDir = new File(cache.getParent());
        if (appDir.exists()) {
            String[] children = appDir.list();
            for (String s : children) {
                if (!s.equals("lib")) {
                    deleteDir(new File(appDir, s));
                    Log.i("TAG", "**************** File /data/data/APP_PACKAGE/" + s + " DELETED *******************");
                }
            }
        }
    }

    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 :(得分:4)

只是一个猜测:

通过了解缓存目录的绝对路径来删除这些文件 - getCacheDir() - http://d.android.com/reference/android/content/Context.html#getCacheDir()。