我为我的应用创建了一个小部件,它将显示浏览器历史记录。
当用户开始浏览时,URL将被记录在Widget的数据库中。但它不与小部件同步。它没有反映在小部件列表视图中。
我已按照以下链接使用list-view创建小部件。
https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget/LoremWidget
我已经看到了一些堆栈溢出Q / A.它说,为避免编码错误,每隔30分钟就会发生同步。但是如果你看到whats-app的小部件,每当whats-app收到消息时小部件都会更新。
任何人都可以帮助我在每次将新值添加到数据库时同步小部件,或者请告诉我为什么我们无法同步小部件,但是什么是应用程序可以。
答案 0 :(得分:1)
我建议您阅读此文档。我使用它来根据数据库(firebase)中的更改来更新我的小部件。有一种称为onDataSetChanged()
的方法,该方法将根据数据库中的任何更改由notifyAppWidgetViewDataChanged()
触发。
https://developer.android.com/guide/topics/appwidgets/#fresh
下面是从上述文档中复制的信息片段。
下图说明了应用小部件中发生的流程 当更新发生时使用集合。它显示了应用程序小部件 代码与RemoteViewsFactory交互,以及如何触发 更新: