Muzei 插件卡在永远不会收到 onUpdate() 调用的状态

Posted

技术标签:

【中文标题】Muzei 插件卡在永远不会收到 onUpdate() 调用的状态【英文标题】:Muzei plugin getting stuck in state where it will never get an onUpdate() call 【发布时间】:2014-05-26 21:42:27 【问题描述】:

我编写了一个 Muzei 插件,它使用 Flickr API 每小时检查和获取远程图像一次。我注意到有时我的应用程序会进入错误状态并且会停止更新。我检查了共享首选项(Muzei 存储下一次更新时间的位置),我注意到 scheduled_update_time_millis 变量不再存在于我的艺术源 xml 文件中。

我已经仔细检查了我的 RemoteMuzeiArtSource.onTryUpdate() 方法调用,并确认它应该总是调用

long CHECK_INTERVAL_MILLIS = 1 * 60 * 60 * 1000L; // 1 hr
scheduleUpdate(System.currentTimeMillis() + CHECK_INTERVAL_MILLIS);

或抛出RetryException

不幸的是,我无法始终如一地重现这种糟糕的状态,所以我不确定它是如何发生的。

我的 RemoteMuzeiArtSource 课程的完整源代码在这里:CactusArtSource

【问题讨论】:

【参考方案1】:

回答我自己的问题:事实证明,在执行 onTryUpdateonUpdate 期间抛出的任何 RuntimeException 都会导致无法通过整个方法,因此(在我的情况下)不会安排新的更新。就我而言,这是在网络错误事件期间引发的 RetrofitError 。我向它扔了一点try-catch handling,似乎已经修复了错误

【讨论】:

以上是关于Muzei 插件卡在永远不会收到 onUpdate() 调用的状态的主要内容,如果未能解决你的问题,请参考以下文章

ListView 未在 App Widget 中显示数据

phonegap pushwoosh 插件 registerDevice 回调函数永远不会在 android 上触发

Grails spring-security-core 插件安装永远不会完成

Android Studio 无法识别 Muzei 动态壁纸中的 R 类?

如何从 IntentService 创建吐司?它卡在屏幕上

Muzei 源选择器中的图标似乎无法正确缩放