我想清除应用程序数据,就像我可以从设置中做到这一点。当我登录到facebook或twitter时,我需要在WebView中清除登录信息,因为当我为以下每个用户登录一次时自动使用相同的数据
我试试这个: http://www.hrupin.com/2011/11/how-to-clear-user-data-in-your-android-application-programmatically
无效,登录信息仍在浏览器中
我尝试重置应用:
Intent i = getBaseContext().getPackageManager()
.getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
也
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.clearCache(true);
if(b){
Log.d("WEBVIEW", "onFinisghed b true");
Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
noCacheHeaders.put("Pragma", "no-cache");
noCacheHeaders.put("Cache-Control", "no-cache");
view.loadUrl(url, noCacheHeaders);
b = false;
}...
大多数条目是指链接中描述的第一种方法,但它在我的情况下不起作用,有什么想法吗?
答案 0 :(得分:8)
尝试清除浏览器Cookie。登录凭据通常存储在浏览器cookie中,您可以通过调用
删除它CookieManager.getInstance().removeAllCookie();
更新
CookieManager.getInstance()。 removeAllCookie ()已在Android SDK 21(Lollipop)中弃用,并被CookieManager.getInstance()取代。 removeAllCookies(ValueCallback callback)。自2018年11月起, removeAllCookie() 仍按指定工作。此外,在较新的方法 removeAllCookies(ValueCallback callback)中,如果您不希望收到有关已删除cookie的通知,则回调函数可以为null。因此,使用
是安全的CookieManager.getInstance().removeAllCookies(null)
在Android SDK 21之后定位设备时,直接替换CookieManager.getInstance()。 removeAllCookie ()。
CookieManager文档在这里。
答案 1 :(得分:0)
答案 2 :(得分:0)
<强> CookieManager.getInstance()removeAllCookie(); 强>
上述方法将解决问题,但此方法在API级别21中已弃用,因此请改用 removeAllCookies(ValueCallback) 。
此方法是异步的。如果提供了ValueCallback,则一旦操作完成,将在当前线程的Looper上调用onReceiveValue()。提供给回调的值表示是否删除了任何cookie。如果您不需要知道操作何时完成或者是否删除了任何cookie,则可以传递null作为回调,在这种情况下,从没有Looper的线程调用该方法是安全的。
ValueCallback :删除Cookie后执行的回调