现在的位置: 首页 > 综合 > 正文

清除应用缓存的方法

2013年12月13日 ⁄ 综合 ⁄ 共 1291字 ⁄ 字号 评论关闭

以下方法为网上找到的方法:

一、

 如何删除项目的缓存:

getCacheDir()能够得到当前项目的缓存地址

在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/应用package 目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache 文件夹下

打开关闭使用缓存,一共有五个种类

//优先使用缓存:

WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

//不使用缓存:

WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

在退出应用的时候加上如下代码

       File file = CacheManager.getCacheFileBaseDir();

       if (file != null && file.exists() && file.isDirectory()) {

       for (File item : file.listFiles()) {

         item.delete();}

         file.delete();}

      context.deleteDatabase("WebView.db");

      context.deleteDatabase("WebViewCache.db");

二、

我们在做软件时,当程序里使用了webview,就会缓存了很多东西,所以要清除一下,才能让软件跑的更快。实际上是清除data文件夹下面的cache,以及databases文件夹下面的东西。

用下面代码去处理,可以把两个文件夹下面的东西删除

 clearCacheFolder(BaseActivity.this.getCacheDir(), System.currentTimeMillis());
     BaseActivity.this.deleteDatabase("webview.db");

     BaseActivity.this.deleteDatabase("webviewCache.db");

被调用的方法:

private int clearCacheFolder(File dir, long numDays) {         

        int deletedFiles = 0;        

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

            try {               

                for (File child:dir.listFiles()) {   
                    LogUtlis.i("info", "child=========="+child.getName());
                    if (child.isDirectory()) {             

                        deletedFiles += clearCacheFolder(child, numDays);         

                    }   

                    if (child.lastModified() < numDays) {    

                        if (child.delete()) {                  

                            deletedFiles++;          

                        }   

                    }   

                }            

            } catch(Exception e) {      

                e.printStackTrace();   

            }    

        }      

        return deletedFiles;    

    } 

抱歉!评论已关闭.