Android:在应用设备中管理多个推送通知

Man*_*gde 13 notifications android push-notification android-notifications android-notification-bar

我正在开发一个应用程序,我在其中实现了Push通知功能.我的onMessage代码- GCMIntentService.java是:

@Override
protected void onMessage(Context context, Intent data) {
    String message = data.getExtras().getString("message");

    displayMessage(context, message);
    generateNotification(context, message);
}
Run Code Online (Sandbox Code Playgroud)

generateNotification的代码-

private static void generateNotification(Context context, String message) {
    int icon = R.drawable.ic_launcher;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);

    String title = context.getString(R.string.app_name);

    Intent notificationIntent = new Intent(context, GCMMessageView.class);

    notificationIntent.putExtra("message", message);
    // set intent so it does not start a new activity
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent = PendingIntent.getActivity(context, 0,notificationIntent, 0);

    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    // Play default notification sound
    notification.defaults |= Notification.DEFAULT_SOUND;

    // Vibrate if vibrate is enabled
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    notificationManager.notify(0, notification);
}
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常.我正在收到推送消息和通知.

=>但是当我发送超过一条消息时,通知就会被写入.我只能在状态栏中看到最后一次通知.

应用程序的需要是 - 如果我发送多个通知,那么所有应该显示在状态栏中.

所以请指导我在代码中应该怎么做.

Sys*_*ech 10

尝试在意图中添加不同的通知ID(即nid),并为每个新通知通知而不是0,这将防止覆盖您的通知

  PendingIntent intent = PendingIntent.getActivity(context, nid,notificationIntent, 0);
Run Code Online (Sandbox Code Playgroud)

notificationManager.notify(nid, notification);

希望对你有帮助