WorkManager 如何用于小部件更新?

Posted

技术标签:

【中文标题】WorkManager 如何用于小部件更新?【英文标题】:How can WorkManager be used for widget updating? 【发布时间】:2019-01-14 15:55:44 【问题描述】:

android Oreo (8.0) 使得更新小部件变得非常困难 (1,2,3) 通过单击按钮 (PendingIntent) 或每 X 分钟自动更新一次。我正在研究如何为此使用新的WorkManager。

我能够将 if 用于与小部件无关的另一个任务,并且效果很好。但是,我找不到任何关于如何将它与小部件一起使用以便能够定期更新它们(比如说每 5 分钟)并在单击 RemoteView 时更新它们的任何示例(甚至是快速大纲)。顺便说一句,这需要从 Internet 下载文件并在 RemoteViews 中显示内容。

有人试过吗?效果如何?有例子吗?

【问题讨论】:

【参考方案1】:

您可以使用WorkManager 使用JobScheduler 使用Workers 的哪个调度程序。 Android O 中的 Widget 并没有什么特别之处,这让事情变得不同(从 WorkManagers 的角度来看)。

【讨论】:

另外,PeriodicWork 的最小间隔为 15 分钟(与 JobScheduler Periodic Job 相同)。如果您每 30 秒需要一次 — 考虑使用 OneTimeWork,并在工作完成后重新安排。

以上是关于WorkManager 如何用于小部件更新?的主要内容,如果未能解决你的问题,请参考以下文章

用于动态小部件更新的 Twitter 小部件方法

如何在更新父有状态小部件时更新子有状态小部件

如何从另一个小部件类更新小部件树 - Flutter

仅当我在主应用程序中按下活动中的按钮时,如何更新小部件

如何正确删除小部件并更新/重新加载小部件

如何创建自己的使用 qss 的 qt 小部件