以下方法為網上找到的方法:
一、
如何刪除項目的緩衝:
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; }