Как удалить предыдущий контент WebView перед загрузкой следующего WebView?

Мой сценарий изначально я загружаю WebView, а позже я загружаю тот же WebView с другим URL-адресом.

Моя проблема заключается в том, что когда я загружаю следующий URL-адрес, я могу видеть ранее загруженное содержимое URL-адреса, а затем отображается содержимое загруженного URL-адреса.

Я хочу очистить содержимое всякий раз, когда загружаю другой URL.

Сказать,

if (pos == 0) { mweb.clearCache(true); mweb.clearHistory(); mweb.loadUrl("http://stackoverflow.com/"); } else if (pos == 1) { mweb.clearCache(true); mweb.clearHistory(); mweb.loadUrl("http://android.stackexchange.com/"); } 

И clearCache() и clearHistory() не работают для меня.

Используйте mweb.clearView(); Перед загрузкой нового URL-адреса.

Редактировать:

ClearView () устарел на уровне API 18. Используйте WebView.loadUrl("about:blank") чтобы надежно сбросить состояние представления и ресурсы страницы выпуска (включая любой запущенный JavaScript).

Для решения проблемы, поднятой @Liang:

Чтобы иметь последовательную обратную навигацию, вы можете переопределить «onPageFinished», и внутри нее проверьте, содержит ли url «about: blank» или нет. Если да, используйте "webview.goBack ()"

Комментарий Thnx to StefanK здесь. Вам нужно использовать метод clearHistory() когда страница заканчивает загрузку в WebViewClient onPageFinished(WebView view, String url) также в onLoadResource(WebView view, String url) ; следующим образом:

  myCoolWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url){ view.loadUrl(url); return true; } @Override public void onLoadResource(WebView view, String url) { // Notice Here. view.clearHistory(); super.onLoadResource(view, url); } @Override public void onPageFinished(WebView view, String url) { // And Here. view.clearHistory(); super.onPageFinished(view,url); } }); 

Также вы можете проверить canGoBack() и copyBackForwardList() для манипуляций.

Я обычно скрываю webview перед загрузкой нового URL-адреса, а затем показываю его снова, когда прогресс загрузки немного продвинулся.

 // url loading mWebView.setVisibility(View.INVISIBLE); mWebView.loadUrl(newUrl); // show webview again mWebView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int progress) { if (progress >= 10) { mWebView.setVisibility(View.VISIBLE); } } } 

Используйте следующую инструкцию перед loadData [Kuldip Bairagi]

view.loadUrl ( "JavaScript: document.open (); document.close ();");