【问题标题】:Does CookieSyncManager need a valid instance of WebView?CookieSyncManager 是否需要有效的 WebView 实例?
【发布时间】:2011-06-21 19:57:15
【问题描述】:

我的应用程序中存在一些不寻常的情况,我无法在 onCreate() 中实例化 WebView,而只能在稍后的回调中实例化(甚至不在同一个线程上)。

因此,official documentation 中的千篇一律的说明(没有双关语),您在 Activity.onResume() 中调用 CookieSyncManager.getInstance().startSync() 并不真正适用于我的情况。

这是因为CookieSyncManager::createInstance() 需要在之前 CookieSyncManager::getInstance() 调用,但我的回调在之后 Activity.onResume() 被调用(其中CookieSyncManager::getInstance() 被调用)。

所以我唯一的办法似乎是将CookieSyncManager::createInstance() 转移到Activity.onResume(),就在调用CookieSyncManager::getInstance() 之前。

这并不是一个好的解决方案,因为除非我可以检查CookieSyncManager 实例的存在,否则创建多个CookieSyncManager 实例并不是一个好主意。 ..(无论如何它都无法正常工作)。

所以我想也许将CookieSyncManager::createInstance()移动到onCreate()以完全符合官方文档。唯一的问题是,WebView 的实例在 onCreate() 中尚不存在...

因此我的问题是:CookieSyncManager 是否需要有效的 WebView 实例?

【问题讨论】:

    标签: android cookies webview


    【解决方案1】:

    好吧,你可以在创建 WebView 对象之前调用 CookieSyncManager,但是你的 WebView 对象的 cookie 也不会被保存。

    【讨论】:

    • 哇哦!我刚刚在创建 WebView 对象之前完成了对调用 CookieSyncManager 的测试,并且它可以工作,即使在应用程序被终止后也可以保存会话 cookie。好的。你的回答给了我尝试的勇气,所以我会接受你的回答,尽管你说 cookie不会被保存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多