SavedPreferences的Android Widget更新失败

时间:2014-03-31 13:42:11

标签: android widget settings

应用说明: 窗口小部件显示一些信息集,每隔60,000ms更新一次。 一个视图Activity用作设置Widget使用的首选项的位置。 所有首选项都保存,并且更新得很好。当用户按下关闭按钮时,信息被更新,并且Widget获得更新的调用。 SavedPreferences在onUpdate的Widget void内调用。

一切正常。谢谢你在这里已经回答的许多问题让我走得那么远!

以下是问题...当自动更新稍后触发时,SavedPreferences中的变量无法加载。有时它们会这样做有时不这样做。由于这是在我的平板电脑上运行,我没有错误日志报告。我看到的是Widget没有崩溃,但它显示了它的原始XML,没有填充SavedPreferences的TextView。 我觉得奇怪的是偶数默认值没有加载。也就是说,它的加载键被设置为如果没有找到,它应该返回默认值。这通常用于,例如,第一次加载Widget,并且没有要加载的首选项。 如果首选项的读取失败,为什么不加载默认值? 为什么偏好的阅读失败如此完整,但只是在某些时候?

1 个答案:

答案 0 :(得分:0)

是的。我在回答我自己的问题。我认为这对设计具有偏好设置的小部件的任何人都有帮助。

问题不是我想的。旋转屏幕时会发生更新缺失。显然,这会触发对Widget的刷新,但它不会调用onUpdate void。所以你得到的是没有更新的原始XML绘图。它会一直保持这种状态,直到下一次自动更新发生。

因此,解决此问题的方法是确定如何检测屏幕方向的变化,并触发onUpdate,就像我的“设置”视图关闭时一样。