将收到的多个Parse Push通知折叠为一个

时间:2015-03-31 11:38:14

标签: android parsing push-notification google-cloud-messaging

我想将多个Parse Push notifications合并为一个。我查看collapse_key并将其添加到有效负载中,如下所示:

Parse.Push.send({
    where: somebody,
    collapse_key: "places_push",
    data: {
      alert: "alertText",
      type: "pushType"
    }
}//...

但是在我的Android应用程序中,多次推送仍未折叠成一个(即,如果我连续收到2个推送通知,我会在通知托盘中看到两张卡而不是1张)。我应该以某种方式在应用程序端处理此问题(例如 ParsePushBroadcastReceiver onPushOpen 回调)

2 个答案:

答案 0 :(得分:0)

确保传递给NotificationManager对象的通知ID对于同一折叠键下的每条消息保持不变。通过这种方式,您的通知将会更新(而不是之前显示的新通知)。请参阅mNotificationManager.notify代码here

答案 1 :(得分:0)

我通过覆盖 ParsePushBroadcastReceiver 子类的 getNotification()方法解决了这个问题,并在那里用累积文本构建通知(即,是否已经显示通知,附上最后一次推送收到的那些先前通知的文本。为了允许多行进入通知,我按以下方式设置通知的样式:

NotificationCompat.InboxStyle inboxStyle =
                        new NotificationCompat.InboxStyle();
inboxStyle.setBigContentTitle("Details: ");
for(String s: notificationLines){
    inboxStyle.addLine(s);
}
builder.setStyle(inboxStyle);

我希望这会有所帮助。