每当收到推送通知时,我都会调用以下类。 (无论在哪里工作)。 问题是,如果我从另一台设备向我的手机发送通知(比如说是iphone),我会收到通知,并且它会保留在通知栏中。如果我没有触摸它,并发送另一个,另一个将到达并且通知栏中现在将出现2个图标,但是,当我从我自己的手机向我发送通知时,所有当前的通知都在酒吧消失并被我的替换。当我发送新图标时,不会显示其他图标,而是更新旧图标。
如何让每个通知都显示在通知栏中? (因为每个人都有一个唯一的ID,通过在打开指定活动时做特定事情的意图发送给它)
private void sendNotification(String data, String id, Context ctx)
{
mNotificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
Intent myIntent = new Intent(ctx, myActiviy.class);
myIntent.putExtra("data", data);
myIntent.putExtra("id", id);
PendingIntent contentIntent = PendingIntent.getActivity(ctx, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(ctx)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("notification")
.setTicker("notification")
.setStyle(new NotificationCompat.BigTextStyle().bigText(data))
.setAutoCancel(false)
.setContentText(data);
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify((int) (System.currentTimeMillis()/1000), mBuilder.build());
}?
答案 0 :(得分:0)
现在不推荐使用您显示通知的过程。使用以下内容还会为mNotificationManager.notify(uniqueId, mBuilder.build()
提供唯一的int以显示单独的通知。
private void generateNotification(Context context, String message, String notificationId) {
int notify = Integer.valueOf(notificationId);
NotificationManager mNotificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent resultIntent = new Intent(context, ViewPost.class);
Bundle params = new Bundle();
params.putString("group_id", this.groupId.get(notificationId));
params.putString("post_id", this.postId.get(notificationId));
params.putString("notification", "notification");
resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
resultIntent.putExtras(params);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(ViewPost.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(notify,
PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.icon)
.setContentTitle("FleeGroups Notification")
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(message))
.setContentText(message)
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL);
mBuilder.setContentIntent(resultPendingIntent);
mNotificationManager.notify(notify, mBuilder.build());
}
答案 1 :(得分:0)
尝试将此用于id: int id =(int)System.currentTimeMillis();
这两个通知可能是一个接一个地发送的,所以/ 1000正在将它解析为相同的数字。