android - CookieSyncManager 是否需要一个有效的 WebView 实例?

标签 android cookies webview

我在我的应用程序中遇到了一些不寻常的情况,我无法在 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() 以完全符合官方文档。唯一的问题是,onCreate() 中还不存在 WebView 的实例...

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

最佳答案

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

关于android - CookieSyncManager 是否需要一个有效的 WebView 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431242/

相关文章:

android - react native Apollo 错误 : "Network error: Network request failed"

java - 为什么局部可变长度 for 循环更快?分支预测不会减少查找时间的影响吗?

android - 在 Android 中使用内容提供程序公开多个表的最佳实践

rest - 使用RequestBuilder而不发送cookie

android - Action Bar Items (Action Items) 未在 android 中显示。

python - 在 Scrapy 中过期后获取新的 ASP.NET session ID

javascript - 为什么 cookies 是字符串而不是对象?

android - Stripe 结帐在 android webview 中不起作用

javascript - 从 webview 中捕获 native 后退按钮事件

ios - iOS webview 中的 URL 导航栏