当onReceive方法存在时,不会调用App Widget onUpdate

时间:2010-12-03 21:16:17

标签: android android-appwidget

我的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 个答案:

答案 0 :(得分:16)

尝试:

@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方法。