我有小工具,显示来自内容提供商的数据。我想知道内容提供商中的数据何时发生更改。据我所知,这样做的方法是
context.getContentResolver().registerContentObserver
但是当我添加小部件的第一个实例时,不会调用AppWidgetProvider.onEnabled方法。这就是为什么我不能做registerContentObserver的原因。onDisabled也是如此。
如何解决这个问题?
谢谢
发布于 2011-10-13 07:06:02
您需要将android.appwidget.action.APPWIDGET_ENABLED添加为另一个操作:
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.APPWIDGET_ENABLED" />
<action android:name="android.appwidget.action.APPWIDGET_DELETED" />
<action android:name="android.appwidget.action.APPWIDGET_DISABLED" />
</intent-filter>否则,您将不会收到触发onEnabled()的广播。
注意: APPWIDGET_DELETED用于onDeleted(...),APPWIDGET_DISABLED用于onDisabled(...)
发布于 2011-03-30 19:08:43
AppWidgetProvider (或任何其他清单注册的BroadcastReceiver)不能调用registerContentObserver()。更改内容的实体将需要更新您的应用程序小部件,或者您将需要实现某种轮询机制(例如,基于android:updatePeriodMillis检查新内容)。
https://stackoverflow.com/questions/5483651
复制相似问题