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

Leo*_*Leo 11 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");
}
Run Code Online (Sandbox Code Playgroud)

如果我注释掉该onReceive方法,onUpdate每次我将小部件添加到主屏幕时都会调用该方法,如果我不这样做则不会运行.有什么想法吗?

Cri*_*ian 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");
}
Run Code Online (Sandbox Code Playgroud)

如果您查看AppWidgetProvider代码,您将看到它调用该onUpdate方法.因此,您必须调用onUpdate超类的默认方法.