Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> <android>清除應用緩存的方法

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

    }

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved