ContentObserver
当用户将我的 appwidget 添加到主屏幕时,我正在注册。预期的行为是对 my 中基础数据的更改ContentProvider
将触发我的 appwidget 进行更新。问题是如果用户然后重新启动设备,我就不再ContentObserver
注册了。
Android 的 AppWidget 框架似乎没有提供任何挂钩来在设备启动后进行任何类型的设置,因此我无法ContentObserver
在数据上注册另一个。我能想到的唯一解决方案是创建一个在清单中注册的 BroadcastReceiver,它接收 BOOT_COMPLETED 操作。我希望不必这样做。
是否有任何方法可以在启动后注册 ContentObserver(或进行与 AppWidgets 相关的任何其他设置),以便现有的 appwidgets 在设备重新启动后继续正常运行?(如果可能的话,在某个地方有这样的样本吗?)
编辑:
它在启动后出现,我的 AppWidgetProvider 正在被调用,并且 onEnabled 和 onUpdate 回调都发生了。它启动我的 AppWidgetService 并创建一个 RemoteViewsFactory ——此时我应该注册一个 ContentObserver。
但是,无论出于何种原因,当我的 ContentProvider 中的数据发生更改时,ContentObserver 都不会触发。我不知道为什么。