所以 onUpdate 方法调用
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
该类以填充小部件及其适配器,但不会执行任何这些操作。在您更改首选项的前几次,它按预期工作。但之后就退出了。
有谁知道这里发生了什么?