11

我的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则每次将小部件添加到主屏幕时都会调用该方法,否则它不会运行。有什么想法吗?

4

1 回答 1

17

尝试:

@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超类的默认方法。

于 2010-12-03T21:20:06.670 回答