0

每当我收到推送通知时,我都会调用以下类。(尽管可以在任何地方工作)。问题是,如果我从另一台设备向我的手机(比如说 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());
}?
4

2 回答 2

0

您用于显示通知的程序现在已被贬值。使用以下也给出唯一的 intmNotificationManager.notify(uniqueId, mBuilder.build()来显示单独的通知。

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());
}
于 2013-08-26T14:41:19.933 回答
0

尝试将其用于 id: int id = (int) System.currentTimeMillis();

可能这两个通知是一个接一个地发送的,所以 /1000 使它解析为相同的数字。

于 2013-08-28T22:46:55.327 回答