如何实时更新浏览小部件



是否可以使用Glance喷气背包组合live updateWidget的数据?类似于在数据库更改时更新数据。例如,当我使用flow时,流应该能够更新小部件数据,对吗?

我们可以更新点击操作,如:

class MyWidgetActions: ActionCallback {

override suspend fun onRun(context: Context, glanceId: GlanceId, parameters: ActionParameters) {
updateAppWidgetState(context, PreferencesGlanceStateDefinition, glanceId) {
it.toMutablePreferences()
.apply {
...
//toDoSomething()
... 
}
}
MyWidget().update(context, glanceId)
...
}

我们可以在不点击数据流的情况下进行更新吗?

更新:自Glance beta01以来,支持重新组合。因此,您现在可以使用流/实时数据并在可组合文件中运行副作用。尽管这些只有在你的过程还活着的时候才会被激活。

过时于下:

您可以使用其中一种更新方法从应用程序的任何位置更新小部件实例,但您不能订阅或观察小部件内容/可组合方法内的任何流/实时数据。

尽管这意味着你的应用程序必须正在运行,所以你需要一个正在运行的服务。我们不建议使用";活的";小部件不断更新,因为这可能会导致电池电量耗尽。

而是使用WorkManager来安排定期更新。

最新更新