【问题标题】:Android Widget update from SavedPreferences fail从 SavedPreferences 更新 Android Widget 失败
【发布时间】:2014-03-31 13:42:11
【问题描述】:

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

这一切都很好。感谢您在这里已经回答的许多问题,这些问题让我走了这么远!

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

【问题讨论】:

  • 什么是 SavedPreferences?也许是 SharedPreferences?
  • 是的,抱歉。我面前没有代码。我在工作。

标签: android widget settings


【解决方案1】:

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

问题不是我想的那样。旋转屏幕时会出现缺少更新。显然,这会触发对 Widget 的刷新,但它不会调用 onUpdate void。因此,您得到的是没有更新的原始 XML 绘制。它会一直保持这种状态,直到下一次自动更新触发。

所以解决这个问题的方法是确定如何检测屏幕方向的变化,并在我的“设置”视图关闭时触发 onUpdate。

【讨论】:

    猜你喜欢
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多