我有一个小部件,当用户单击小部件主体时,它应该调用主应用程序的 Activity。我的设置适用于单个小部件实例,但对于同一小部件的第二个实例,PendingIntent 被重用,因此我作为额外发送的重要信息被第一个实例覆盖。所以我认为我应该将小部件 ID 作为Intent
数据传递,但是一旦我添加Intent#setData
,我会在日志中看到 2 个单独的 Intent 被适当地触发但 Activity 无法拾取它,所以基本上 Activity 不会出现并且没有任何反应(没有错误或警告以太)以下是清单中活动的设置方式:
<activity android:name=".SearchResultsView"
android:label="@string/search_results"
<intent-filter>
<action android:name="bostone.android.search.RESULTS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
这是为处理点击设置的代码
Intent di = new Intent("bostone.android.search.RESULTS");
di.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// if line below is commented out - the Activity will start
di.setData(ContentUris.withAppendedId(Uri.EMPTY, widgetId));
di.putExtra("URL", url);
views.setOnClickPendingIntent(R.id.widgetContent,
PendingIntent.getActivity(this, 0, di, 0));
主应用程序和小部件被打包为 2 个单独的 APK,每个 APK 在其自己的包和清单中