http://stackoverflow.com/questions/17418503/destroy-webview-in-android
The WebView might not be destroyed because you are removing the view in the onDestroy(), which is only called once an app is swiped from the recents screen or the system kills it itself, or when the user exits with the back button.
To remove the WebView from memory, override the finish() method and place the code you have in onDestroy() in finish(). finish is called when the app is exited via the back button, so this will ensure that the WebView is destroyed.
Your full code to kill the view should look like this:
@Override
public void finish() {
mWebContainer.removeAllViews();
mWebView.clearHistory();
mWebView.clearCache(true);
mWebView.loadUrl("about:blank");
mWebView.freeMemory(); //new code
mWebView.pauseTimers(); //new code
mWebView = null;
super.finish();
}
NOTE: mWebView.destroy() and mWebView = null do the exact same thing. Also, I want to add that calling mWebView.onDestroy
twice or mWebView = null
twice will crash the browser since as I stated mWebView = null
is interpreted by the WebView as mWebView.destroy() and after destroying it, it is null. So basically doing that twice results in a native NullPointer, which will manifest itself as Fatal Signal 11