清除应用程序缓存而无需强制关闭应用程序

时间:2017-03-01 13:57:44

标签: android caching android-espresso

我需要在不强制关闭应用程序的情况下清除应用程序的缓存。我需要应用程序继续运行。我正在使用espresso来测试应用程序,但我需要在应用程序启动之前清除缓存。有没有可行的办法呢?

public static void clearPreferences(Activity activity) {
    try {
        // clearing app data
        String packageName = activity.getPackageName();
        Runtime runtime = Runtime.getRuntime();
        runtime.exec("pm clear "+packageName);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

这就是我所拥有的。但它会关闭应用程序并终止测试用例

1 个答案:

答案 0 :(得分:0)

点击下面的链接,对您有所帮助。

Clear Cache in Android Application programmatically

public static void deleteCache(Context context) {
    try {
        File dir = context.getCacheDir();
        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();
    } else if(dir!= null && dir.isFile()) {
        return dir.delete();
    } else {
        return false;
    }
}

在清单中添加权限 <uses-permission android:name="android.permission.CLEAR_APP_CACHE"/>