Виджет приложений 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 по умолчанию для суперкласса.