0

インスタント メッセージング アプリケーションのようなものを作りたかったのです。複数のメッセージをすべて 1 つの通知に表示するにはどうすればよいですか? ユーザーが単一の通知を受け取ったときに表示される通知を作成できます。しかし、ユーザーが複数のメッセージを受信した場合、前のメッセージで通知を更新するにはどうすればよいですか? ユーザーが通知をキャンセルしなかった場合、メッセージをデータベースに保存して表示する必要がありますか? または、これを処理できる他の方法はありますか?

以下は私の通知コードです。

    NotificationManager notificationManager = (NotificationManager)
            context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, "IMTest- A new event is created" , when);
    Intent notificationIntent = new Intent(context, IM_Chat.class);
    notificationIntent.putExtra("topicId", topicId);
    notificationIntent.putExtra("sender", sender);

    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
            Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent =
            PendingIntent.getActivity(context, 1, notificationIntent, Intent.FLAG_ACTIVITY_MULTIPLE_TASK | PendingIntent.FLAG_CANCEL_CURRENT);
    notification.setLatestEventInfo(context, topicName, "A new event ["+eventName+"] is added in "+topicName, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
    notification.defaults |= Notification.DEFAULT_SOUND;
    notification.ledARGB |= 0xff0000ff;
    notification.ledOffMS |= 1000;
    notification.ledOnMS |= 300;
    notificationManager.notify(CommunitiesappConstant.NOTIFICATION_ID, notification);
4

1 に答える 1

1

同じIDとビルダーを使用して通知を更新できます

http://developer.android.com/guide/topics/ui/notifiers/notifications.html#更新

 private NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
  private mNotificationManager =
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

  //Different Id's will show up as different notifications
  private int mNotificationId = 1;    
  //Some things we only have to set the first time.
  private boolean firstTime = true;

  private updateNotification(String message, int progress) {
    if (firstTime) {
      mBuilder.setSmallIcon(R.drawable.icon)
      .setContentTitle("My Notification")
      .setOnlyAlertOnce(true);
      firstTime = false;
    }
    mBuilder.setContentText(message)
    .setProgress(100, progress, true);
    mNotificationManager.notify(mNotificationId, mBuilder.build());
  }
于 2013-10-11T04:19:18.620 に答える