Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

App Widget onUpdate not called when onReceive method exists

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?

like image 302
Leo Avatar asked Dec 03 '10 21:12

Leo


1 Answers

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.

like image 179
Cristian Avatar answered Oct 16 '22 08:10

Cristian