Android WebViewClient即使在注销后也会加载以前的用户数据

Android WebViewClient即使在注销后也会加载以前的用户数据,android,webview,webviewclient,Android,Webview,Webviewclient,我正在使用以下方式将URL加载到我的Web视图中: mWebView.setWebviewClient(new WebViewClient); 此URL加载Http身份验证页。用户登录后,其凭据将保存在SharedReference中。此外,我还实现了注销功能,其中我清除了所有数据 当我再次尝试加载url时,它不会显示登录页面,并且会使用以前的凭据自动登录。如果在普通浏览器中加载URL,则登录页面加载良好。只有当我应用WebViewClient时,我才能获得上述行为 这是我的密码:- myWe

我正在使用以下方式将URL加载到我的Web视图中:

mWebView.setWebviewClient(new WebViewClient);
此URL加载Http身份验证页。用户登录后,其凭据将保存在
SharedReference
中。此外,我还实现了注销功能,其中我清除了所有数据

当我再次尝试加载url时,它不会显示登录页面,并且会使用以前的凭据自动登录。如果在普通浏览器中加载URL,则登录页面加载良好。只有当我应用
WebViewClient
时,我才能获得上述行为

这是我的密码:-

myWebView.getSettings().setJavaScriptEnabled(true);

        myWebView.loadUrl(url);
        WebViewDatabase.getInstance(Details1.this).clearHttpAuthUsernamePassword();
        WebViewDatabase.getInstance(Details1.this).clearUsernamePassword();
        WebViewDatabase.getInstance(Details1.this).clearFormData();


        myWebView.setWebViewClient(new WebViewClient())

我很困惑,在网上搜索了答案,但什么也找不到。

我花了太多时间在这上面。正如这里提到的,这些方法都不起作用

最后,我通过在OnReceiveDhtPauthRequest中设置标志waslogeggin解决了这个问题,然后当我想清除登录凭据时,检查标志:

if (wasLoggedIn) {
  Intent i=new Intent(this,MainActivity.class);
  i.setAction(Intent.ACTION_MAIN);
  i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
  finish();
  try {startActivity(i);}
  catch (java.lang.Exception ignore) {}
  System.exit(0);
}
是的,重新启动应用程序。这是唯一的办法,至少在4.4.2中是这样