当前位置:操作系统 > 安卓/Android >>

<android>清除应用缓存的方法

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


一、


 如何删除项目的缓存:

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"); 

       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"); 

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

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;   

    }

 

 

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,