我有一个用于显示预测的简单小部件,我正在尝试在我使用的API请求完成后更新它。但我得到了这个奇怪的错误:" E / Finsky:[1] com.google.android.finsky.widget.a.onReceive(146):拒绝更新所有小部件;需要缩小范围"
private void updateWidgets(Context context){
Intent updateIntent = new Intent();
updateIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
context.sendBroadcast(updateIntent);
}
我试图在活动中,服务结束时或广播接收器中调用此方法(在服务完成后侦听服务中的广播)。谁能给我一个建议我能做错什么?
小部件类:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for(int i = 0; i<appWidgetIds.length; i++){
int currentWidgetId = appWidgetIds[i];
RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.weathy_widget_info);
//Some other unrelated stuff
appWidgetManager.updateAppWidget(currentWidgetId,views);
}
}
该方法触发更新,但它不会更新小部件,我不知道是什么问题。也可以在onUpdate()中使用SQLite吗?