我尝试创建多个通知。如果点击通知,它将链接 到另一个活动。在下面的代码之后,它会创建两行通知。 但是,当我点击第一行通知时,它无法正常工作。 只有第二个工作。
for (int i = 0; i < missionName.size(); i++) {
mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
final Notification notifyDetails = new Notification(R.drawable.icon,
"Mission Completed, Click Me!", System.currentTimeMillis());
notifyDetails.defaults |= Notification.DEFAULT_SOUND;
notifyDetails.defaults |= Notification.DEFAULT_VIBRATE;
Context context = getApplicationContext();
CharSequence contentTitle = missionName.get(i) + " is completed";
CharSequence contentText = "Please click to view the mission";
Intent notifyIntent = new Intent(getApplicationContext(),MissionMap.class);
notifyIntent.putExtra("missionName", missionName.get(i));
PendingIntent intent = PendingIntent.getActivity(ApplicationMenus.this,
0, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
notifyDetails.setLatestEventInfo(context, contentTitle, contentText,
intent);
mNotificationManager.notify(i, notifyDetails);
}
所以,请帮我找出错误。非常感谢你。
答案 0 :(得分:21)
您应该使用不同的请求代码创建PendingIntent。 改变这个:
PendingIntent intent = PendingIntent.getActivity(ApplicationMenus.this,
0, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
对此:
PendingIntent intent = PendingIntent.getActivity(ApplicationMenus.this,
i, notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
请注意,我已将第二个参数更改为循环索引(i)而不是0。 如果使用相同的参数,则不会创建意图,而是使用具有相同参数的先前意图。
这可以解决您的问题。
答案 1 :(得分:1)
Random random = new Random();
int randomNumber = random.nextInt(9999 - 1000) + 1000;
Intent resultIntent = new Intent(this, MainActivity.class);
TaskStackBuilder TSB = TaskStackBuilder.create(this);
TSB.addParentStack(MainActivity.class);
TSB.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
TSB.getPendingIntent(
randomNumber,
PendingIntent.FLAG_UPDATE_CURRENT
);
nb.setContentIntent(resultPendingIntent);