我有一个 Android 应用程序,它通过 WebView 和 HttpClient 向我的网络服务器发出请求。我使用 CookieSyncManager 在两者之间同步 cookie。到目前为止,一切都很好。
当我的应用程序启动时(在 onResume() 内部),我运行一段类似于以下的逻辑:
if ( appHasBeenIdleFor30Minutes() ) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
CookieSyncManager.getInstance().sync();
}
这会正确重置从用户上一个会话设置的任何会话 cookie。我的问题是:这种行为会定期发生吗?这个问题(android webview or browser not deleted session cookie on device reboot)似乎表明它没有。当我通过服务使用 cookie 同步的 HttpClient 时,似乎没有清除会话 cookie,从而导致奇怪的服务器端行为。
我一直无法在 WebView/CookieSyncManager 中找到有关会话 cookie 生命周期(过期时间 = 0)的具体文档 - 还有其他人有更多的运气吗?