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


我的代码中有以下代码 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 每次我将小部件添加到主屏幕时都会调用方法,如果我不这样做则不会运行。有什么想法吗?


6997
2017-12-03 21: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 超类的方法。


16
2017-12-03 21:20



谢谢,真的应该自己选择了! - Leo


答案:


尝试:

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


16
2017-12-03 21:20



谢谢,真的应该自己选择了! - Leo