Android:2个具有不同ID和文本的不同通知显示相同的文本

时间:2013-09-19 16:28:24

标签: android notifications

如上所述,当设备收到2个或更多通知时,我无法在通知中成功显示不同的消息。我尝试了一些我试过的解决方案,但是他们没有用。我创建通知的代码如下:

NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

Intent showMessageIntent = new Intent(context, AdminMessageActivity.class);
showMessageIntent.putExtra(WorkspaceConstants.ADMIN_MESSAGE_KEY, message);
showMessageIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

int Id = new Random().nextInt();
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, showMessageIntent, 0);
String messageShort = (message.length() > 25) ? message.substring(0, 25) + "..." : message; 

NotificationCompat.Builder mBuilder =
        new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle(context.getText(R.string.admin_message))
.setContentText(messageShort)
.setContentIntent(pendingIntent)
.setAutoCancel(true);

mNotificationManager.notify(Id, mBuilder.build());

我使用以下代码提取邮件内容:

if(getIntent() != null && getIntent().getExtras() != null){ 
    mMessageContent = getIntent().getExtras().getString(ADMIN_MESSAGE_KEY); 
} 

mMessage.setText(mMessageContent);

日志中没有异常也没有崩溃。

2 个答案:

答案 0 :(得分:1)

如果要一次显示2个通知,则应将showMessageIntent上的setData调用为不同的值。

答案 1 :(得分:0)

如果您只更改传递给Intent的{​​{1}}的额外内容,则默认情况下会重复使用初始PendingIndent而不更新附加内容 - 传入{{3} }作为Intent的最后一个参数,以确保您的附加内容更新。