【问题标题】:CookieSyncManager::createInstance() needs to be called before CookieSyncManager::getInstance()CookieSyncManager::createInstance() 需要在 CookieSyncManager::getInstance() 之前调用
【发布时间】:2011-05-28 06:41:14
【问题描述】:

这个错误信息很清楚:

CookieSyncManager::createInstance() 需要先调用 CookieSyncManager::getInstance()

但我只收到此错误是因为我关注了official documentation

要使用 CookieSyncManager,主机 应用程序必须调用以下 应用程序何时启动:

CookieSyncManager.createInstance(context)

要设置同步,主机 应用程序必须调用

CookieSyncManager.getInstance().startSync()

在Activity.onResume()中

该错误仅在应用程序尝试恢复时发生,而不是在它干净启动时发生。

所以,我可以通过将CookieSyncManager.createInstance(context) 移动到Activity.onResume() 来解决这个问题,但是...这不会造成 问题吗?

(例如,每次应用恢复时忘记之前的会话 cookie?)

【问题讨论】:

    标签: android cookies webview android-webview


    【解决方案1】:

    我在最近的一个应用程序中遵循了官方文档,并且 CookieSyncMasnager 工作正常...

    我有以下几点:

    onCreate()
        CookieSyncManager.createInstance(this);
    
    onResume()
        CookieSyncManager.getInstance().startSync();
    
    onPause()
        CookieSyncManager.getInstance().stopSync();
    

    我在 createInstance() 中使用活动上下文。你没有提到你使用的是哪个上下文?

    您也没有提到在 onPause() (或类似的)中执行 CookieSyncManager.getInstance().stopSync()。因此,对于简历,您可能会调用 CookieSyncManager.getInstance().startSync() 两次而没有中间停止?

    【讨论】:

    • @Torid 抱歉,我没有提到我在onPause() 中调用CookieSyncManager.getInstance().stopSync()。就我目前的理解而言,我使用的上下文是主要活动:它在从活动的 onInit() 调用的 initWebView() 中调用,方式如下:runOnUiThread(new Runnable() { public void run() { initWebView(); } }); 这有什么问题吗?谢谢和 +1。
    • 嗯... runOnUiThread 是一个 Activity 方法,但我不认识 onInit。那部分属于哪个班级?
    • 另外,你没有说上下文是如何通过方法链传递给 initWebView 的——最好检查一下“this”是否从活动中正确传递。而且您始终可以使用 CookieSyncManager.createInstance(getApplicationContext()); 在 initWebView 调用中显式获取应用程序上下文(而不是活动上下文)
    • @Torid 我终于弄清楚问题的根本原因不是上下文,而是调用这些回调的顺序onInit()TextToSpeech.OnInitListener 的回调,虽然它在onCreate() 中被触发,但它实际上是(由系统) onResume() 之后调用的。因此,这个错误。现在的问题是:将CookieSyncManager.createInstance(context) 移动到Activity.onResume() 是正确的解决方案吗?
    • 太棒了。有趣的是,您可以在 WebView 之前创建一个 CookieSyncManager 实例?但是,嘿......如果它有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2013-06-07
    相关资源
    最近更新 更多