나는 WebView 컨트롤을 가지고 있으며 매번 현재 사이트를 보여주고 싶지만 WebView는 캐시 된 버전의 사이트 만 표시한다고 생각합니다. 내가 찾은 모든 시도는 here 그러나 아무것도 작동하지 않는 것 같습니다. context.getCacheDir()에서 모든 파일을 삭제하려고했지만 성공하지는 못했습니다. 내가 무엇을 할 수 있을지?안드로이드 WebView - 캐시 지우기
clearCache(this, 0);
setContentView(R.layout.webview);
deleteDatabase("webview.db");
deleteDatabase("webviewCache.db");
mWebView = (WebView)findViewById(R.id.webview);
mWebView.setWebViewClient(new CenterWebViewClient(this));
mWebView.setWebChromeClient(new CenterWebChromeClient(this));
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setAppCacheEnabled(false);
mWebView.getSettings().setAppCacheMaxSize(1);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
String url = "https://www.exacmple.com";
if (url != null) {
Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
noCacheHeaders.put("Pragma", "no-cache");
noCacheHeaders.put("Cache-Control", "no-cache");
mWebView.loadUrl(url, noCacheHeaders);
}
위해 clearCache 기능 :
이것은에서 onCreate 메소드로부터 내 코드 인 웹보기를 통해
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.clearCache(true);
}
을 표시 할 때마다 캐시를 지울 수 있습니다처럼
static int clearCacheFolder(final File dir, final int numDays) {
int deletedFiles = 0;
if (dir!= null && dir.isDirectory()) {
try {
for (File child:dir.listFiles()) {
//first delete subdirectories recursively
if (child.isDirectory()) {
deletedFiles += clearCacheFolder(child, numDays);
}
//then delete the files and subdirectories in this dir
//only empty directories can be deleted, so subdirs have been done first
if (child.lastModified() < new Date().getTime() - numDays * DateUtils.DAY_IN_MILLIS) {
if (child.delete()) {
deletedFiles++;
}
}
}
}
catch(Exception e) {
Log.e("WebView", String.format("Failed to clean the cache, error %s", e.getMessage()));
}
}
return deletedFiles;
}
public static void clearCache(final Context context, final int numDays) {
Log.i("WebView", String.format("Starting cache prune, deleting files older than %d days", numDays));
int numDeletedFiles = clearCacheFolder(context.getCacheDir(), numDays);
Log.i("WebView", String.format("Cache pruning completed, %d files deleted", numDeletedFiles));
}
http://stackoverflow.com/questions/2465432/android-webview-completely-clear-the-cache합니다. http://stackoverflow.com/questions/6542943/clearing-all-cached-items-created-by-a-webview – Raghunandan
나는 그것을했다, 작동하지 않는다 –
당신이 한 것을 보여 줌 – Raghunandan