Виджет приложений onUpdate не вызывается, когда существует метод onReceive

У меня есть следующий код в классе AppWidgetProvider.

@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");
}

Если я прокомментирую метод onReceive, метод onUpdate будет вызываться каждый раз, когда я добавляю виджет на рабочий стол, если я его не запускаю. Любые мысли?

1 ответ

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");
}

Если вы посмотрите на AppWidgetProvider, вы увидите, что он вызывает метод onUpdate. Таким образом, вы должны вызвать метод onUpdate по умолчанию для суперкласса.

licensed under cc by-sa 3.0 with attribution.