有什么用
serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
在以下方面
Intent
在AppWidgetProvider类中(请参阅下面的代码)
根据公共软件手册,原因是:
虽然您的应用程序可以访问RemoteViewsService类对象,但应用程序小部件宿主不能访问,因此我们需要跨进程边界工作的东西。您可以选择将自己的服务添加到RemoteViewsService并使用基于此的意图,但这将使您的服务比您可能希望的更公开。
来源:Android开发的忙碌程序员指南
https://commonsware.com/Android/
但当我删除这一行时,没有任何变化。小部件仍然工作。
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for (int appWidgetId : appWidgetIds) {
[...]
Intent serviceIntent = new Intent(context, WidgetService.class);
serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
views.setRemoteAdapter(R.id.stack_view, serviceIntent);
views.setEmptyView(R.id.stack_view, R.id.empty_view);
[...]
appWidgetManager.updateAppWidget(appWidgetId, views);
}