在更新方法中,调用
remoteViews.setRemoteAdapter(id, R.id.listview, intent)
以便将适配器应用于小部件中的列表视图。
小部件头部有一个按钮,可以更改列表视图显示的数据集(例如,假设为电子邮件小部件中的收件箱、发件箱、星标等)。当我点击该按钮时,它会带用户进入一个活动,让他们选择要显示的数据集。当选择完成后,运行以下代码:
Intent intent = new Intent(this, WidgetReceiver.class);
intent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
intent.putExtra("notify", true);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {R.xml.widget_provider});
sendBroadcast(intent);
这成功地调用了小部件的AppWidgetProvider类中的onUpdate方法。然而,如果我在不同类型的数据集之间切换,经过2-3个偏好更改后,setRemoteAdapter方法就会停止工作。我已经广泛记录了这个过程,但是这个方法应该调用一个服务,然后加载RemoteViewsService.RemoteViewsFactory类来填充小部件及其适配器,但实际上并没有执行任何这些操作。前几次更改偏好时,它像预期的那样工作。但之后就不行了。
有人知道这里出了什么问题吗?