我需要在app小部件中使用Observer
订阅数据库更改。文档说明此类设置的正确位置是onEnabled()
AppWidgetProvider
。但是,onEnabled()
仅在添加新窗口小部件时调用。如果应用程序已启动且窗口小部件已存在,则不会调用它,并且窗口小部件中的数据不会更新。我应该在应用启动时发送ACTION_APPWIDGET_ENABLED
广播还是有其他方法可以做到这一点?
答案 0 :(得分:1)
我需要使用app小部件中的Observer订阅数据库更改。
这是不可能的,除非你要运行一个永恒的服务,这不是一个好的设计模式。
如果这是您自己的数据库,只需在更改数据库内容时使用AppWidgetManager
将更新推送到您的应用小部件。
答案 1 :(得分:0)
虽然CommonsWare在上面的答案中是正确的,但是为app小部件保持静态观察者的方法存在缺陷,为了解决我已经拥有的实现中的问题,我在应用启动时发送ACTION_APPWIDGET_ENABLED广播。不是很干净的方式,但它有效。