0

Observer我需要使用应用内小部件订阅数据库更改。文档说这种设置的正确位置是onEnabled()AppWidgetProvider. 但是,onEnabled()仅在添加新小部件时调用。如果应用程序已启动并且小部件已经存在,则不会调用它并且小部件中的数据不会更新。我应该ACTION_APPWIDGET_ENABLED在应用程序启动时发送广播还是有另一种方法?

4

2 回答 2

2

我需要使用应用程序小部件中的观察者订阅数据库更改。

这是不可能的,除非你要运行一个永久的服务,这不是一个好的设计模式。

AppWidgetManager如果这是您自己的数据库,只需在更改数据库内容时将更新推送到您的应用小部件。

于 2012-05-17T14:04:35.570 回答
0

尽管 CommonsWare 在上面的回答中是正确的,即为应用小部件保留静态观察者的方法存在缺陷,但为了解决我已经意识到的问题,我在应用启动时发送 ACTION_APPWIDGET_ENABLED 广播。不是一个非常干净的方式,但它的工作原理。

于 2012-05-18T13:58:11.757 回答