在创buildandroid通知时,在PendingIntent中使用FLAG_UPDATE_CURRENT时,意图额外function会被复制

我想创build几个启动一个活动(或刷新它)来显示产品描述的通知

Notification notification = new Notification(R.drawable.applicationicon, Resources.getString("NewSaleNotification", context), System.currentTimeMillis()); // Hide the notification after its selected notification.flags |= Notification.FLAG_AUTO_CANCEL; Intent intent = new Intent(context, MainApplication.class); intent.putExtra("saleid", saleid); // to be sure the activity won't be restarted intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); notification.setLatestEventInfo(context, SaleTitle, SaleMessage, pendingIntent); notificationManager.notify(saleid, notification); 

当我创buildPendingIntent时,我有4个select:FLAG_CANCEL_CURRENT,FLAG_NO_CREATE,FLAG_ONE_SHOT和FLAG_UPDATE_CURRENT。

最后一个( http://developer.android.com/reference/android/app/PendingIntent.html#FLAG_UPDATE_CURRENT )的定义是我想要做的,但它不工作,因为它应该。 如果我创build了两个通知,他们都有相同的'saleid'额外这是最新的。 我怎样才能使多个不同的'saleid'额外的通知?

Solutions Collecting From Web of "在创buildandroid通知时,在PendingIntent中使用FLAG_UPDATE_CURRENT时,意图额外function会被复制"

但它不应该如此

是的,它确实。

如果我创build了两个通知,他们都有相同的'saleid'额外这是最新的。

这正是文件所说的应该发生的事情。

我怎样才能通过不同的'saleid'多出一个以上的通知?

选项#1:在你的每个Intents一个不同的动作string。 这将使他们不同(从filterEquals()的angular度),并给他们单独的PendingIntents 。 但是,由于您在IntentMainApplication.class )中指定了组件,因此该操作不会影响Intent路由的方式。

选项2:在getActivity()调用中使用不同的requestCode (第二个参数)。 虽然这被logging为“目前未使用”,但确实会导致返回不同的PendingIntent对象。 但是,由于这种行为是无证的,将来可能会改变。