android - 删除缓存文件 - WebView Android 4.4+

标签 android caching webview chromium

我设法删除了由 WebView 创建的缓存文件:

Clearing android cache , Clear Application cache on exit in android

但是对于 Android 4.4,该解决方案无法正常工作,因为文件缓存在:

/data/data/com.app.package/app_webview/

代替:

/data/data/com.app.package/cache/

以上路径可以通过官方命令getCacheDir()获取。

一种方法是对通过 Get Application Directory 获得的路径进行硬编码

但是,是否有任何[官方]/适当的解决方案来解决这个问题?

最佳答案

你可以使用这个代码

    private static boolean deleteDir(File dir) {
    if (dir != null && dir.isDirectory()) {
        String[] children = dir.list();
        for (String aChildren : children) {
            boolean success = deleteDir(new File(dir, aChildren));
            if (!success) {
                return false;
            }
        }
    }
    // The directory is now empty so delete it
    return dir != null && dir.delete();

}

void trimCache() {

    try {
        String pathadmob = this.getFilesDir().getParent() + "/app_webview";
        File dir = new File(pathadmob);
        if (dir.isDirectory()) {
            deleteDir(dir);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

另外,这里生成了所有4.4+的admob缓存,可以用一段代码验证用户使用了多少次应用,当用户达到限制时删除admob缓存。

关于android - 删除缓存文件 - WebView Android 4.4+,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792090/

相关文章:

Android webkit.WebView 和 HTML5

当我刷出我的应用程序(在其他进程中运行)时,在单独进程上运行的 Android 服务被杀死

android - 如何在android中创建页面控件

android - 如何在 Android 中自动预选国家代码

asp.net - 是否可以在多个 Web 服务器之间共享 System.Runtime.Caching 缓存对象?

Swift:URLRequest 不清除缓存

python - Flask Caching 文件系统缓存是否跨进程共享?

android - 在 android 中实现 Signal R

ios - 如何在 webViewDidFinishLoad 中运行一次命令?

linux - i.MX6 上的 Qt 5.3.2 使用 Yocto : problems with QML WebView