更新多条消息的通知

时间:2014-02-11 06:10:05

标签: android android-notifications

以下是我的代码,当新邮件到达我的应用程序时生成通知

代码

 private static void generateNotification(Context context, String message) {
        int icon = R.drawable.ic_launcher;
        long when = System.currentTimeMillis();
        int counter = 0;
        counter++;

        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, MessageActivity.class);
        // 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;
        notification.defaults |= Notification.DEFAULT_SOUND;
        notification.defaults |= Notification.DEFAULT_VIBRATE;
        notificationManager.notify(counter, notification);

    }

当我收到多条消息时,会有多个通知。

e.g

假设我收到3封新消息,则会有3封个别通知。但我只想要多条消息的单一通知。当我收到多条消息时,应按照 WhatsApp 中的说明更新通知。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如果您有多条消息,例如在JsonArray中,您可以遍历数组并为数组中的每个项目创建通知。可以通过设置相同的Unique_ID来更新循环中创建的通知。如果要显示一个数字以显示此通知中的消息量(即未读消息的数量),请创建一个计数器并在循环中将其增加1。基于目标Android-SDK使用例如NotificationCompat.InboxStyle(需要android.v4.support库)或Notification.InboxStyle来显示多行通知并使用InboxStyle.addLine在循环中添加每个Arrayitems的内容。