11

I have the following code in my AppWidgetProvider class.

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    Log.i("Custom", "Update");
}

@Override
public void onReceive(Context context, Intent intent) {
    Log.i("Custom", "Recieve");
}

If I comment out the onReceive method the onUpdate method will be invoked each time I add the widget to the homescreen, if I do not it does not run. Any thoughts?

Leo
  • 537
  • 1
  • 7
  • 16

1 Answers1

17

Try:

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    Log.i("Custom", "Update");
}

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    Log.i("Custom", "Recieve");
}

If you take a look at the AppWidgetProvider code, you will see that it invokes the onUpdate method. So, you must call the default onUpdate method of the super class.

Cristian
  • 198,401
  • 62
  • 356
  • 264