我正在使用调试器与仿真器一起工作,并且我注意到onUpdate()没有得到调用。当我将小部件添加到仿真器主屏幕时,我在onReceive方法中看到了断点。 onReceive()方法的确获得了android.appwidget.action.APPWIDGET_UPDATE的 Intent 。但是,永远不会调用onUpdate()方法。我相信定义正确。

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

最佳答案

在onReceive()中调用父类(super class)方法

@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(),则除非您调用父类(super class),否则不会触发提供程序的onEnabled,onUpdate等回调。

关于android - 即使我在onreceive中看到android.appwidget.action.APPWIDGET_UPDATE Intent ,也不会在小部件中调用onUpdate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3243445/

10-12 01:21