onUpdate没有在widget中调用,即使我看到android.appwidget.action.APPWIDGET_UPDATE意图在接收

我正在使用debugging器的模拟器,我注意到onUpdate没有被调用。 当我将小部件添加到模拟器的主屏幕上时,我看到我的断点正在onReceive方法中。 onReceive方法获得了android.appwidget.action.APPWIDGET_UPDATE意图。 但是,onUpdate函数永远不会被调用。 我相信它的定义是正确的。

@Override public void onUpdate(Context context ,AppWidgetManager appWidgetManager,int[] appWidgetIds) { // code that sets up remove view and updates appWidgetManager } 

Solutions Collecting From Web of "onUpdate没有在widget中调用,即使我看到android.appwidget.action.APPWIDGET_UPDATE意图在接收"

调用onReceive()中的超类方法

 @Override public void onReceive(Context context, Intent intent) { // Chain up to the super class so the onEnabled, etc callbacks get dispatched super.onReceive(context, intent); // Handle a different Intent Log.d(TAG, "onReceive()" + intent.getAction()); } 

如果在子类AppWidgetProvider中重写onReceive(),则除非调用超类,否则不会触发提供程序的onEnabled,onUpdate等callback函数。

你有一个configuration活动设置为您的部件? 因为如果你这样做,那么onUpdate就不会被调用,这是configuration活动首次手动更新小部件的工作。 之后,onUpdate应按照updatePeriodconfiguration中的定义进行调用。

Android Manifest中有这个吗?

  <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter>