清除Android中的饼干
往浏览器,点击菜单按钮,更多,首选项,清除缓存
示例代码被问到,因此这个人正在寻找如何以编程方式进行。 @ Solo_Danya的回答是正确的方式 – 2018-01-03 11:32:43
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(callback);
removeAllCookie已弃用,请使用removeAllCookies(ValueCallback
CookieSyncManager在API 23上已弃用.WebView现在会根据需要自动同步Cookie。 “您不再需要创建或使用CookieSyncManager。要手动强制同步,您可以使用CookieManager” – 2015-08-31 11:55:45
使用那么CookieManager比如在你的应用程序管理Cookie。可能在自定义Application
类中。
mCookieManager = new CookieManager();
mCookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(mCookieManager);
,每当你想清楚了,打电话类似下面的方法:
public static void clearCookies() {
mCookieManager.getCookieStore().removeAll();
}
在我的MainActivity:
public void onClickLogOut(View view)
{
new AuthActivity().clearCookies(getApplicationContext());
}
SecondActivity:
@SuppressWarnings("deprecation")
public void clearCookies(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
CookieManager.getInstance().removeAllCookies(null);
CookieManager.getInstance().flush();
} else
{
CookieSyncManager cookieSyncMngr= CookieSyncManager.createInstance(context);
cookieSyncMngr.startSync();
CookieManager cookieManager= CookieManager.getInstance();
cookieManager.removeAllCookie();
cookieManager.removeSessionCookie();
cookieSyncMngr.stopSync();
cookieSyncMngr.sync();
}
}
嗨!什么是调用 CookieManager.getInstance()。flush();的目的。 ?根据文档 https://developer.android.com/reference/android/webkit/CookieManager.html#flush() 它与清除cookie无关... – hhg 2017-11-10 19:55:02
为了要得到一个体面的答案,你必须得到你的问题。您是否想要在实施WebKit浏览器的应用程序中删除Cookie数据,或者是否想要清除默认浏览器的所有Cookie? – 2010-10-27 10:02:56
另外,你说示例代码会非常有帮助,这使得我们大多数人都假设你想清除Android编码中的cookies,但是你接受没有代码的答案..:S – 2014-05-08 07:10:07