我正在开发一个消息应用程序,我想使用NotificationCompat.MessagingStyle来处理通知。它通常适用于单条消息,但每条添加的消息只会替换上一条消息,而不是显示接收到的每条消息,直到它们被清除或查看为止(期望的结果)。查看文档后,他们建议像这样添加消息:
.addMessage(messages[1].getText(), messages[1].getTime(), messages[1].getPerson())
.addMessage(messages[2].getText(), messages[2].getTime(), messages[2].getPerson())
这让我猜想他们在某个数组中存储这些消息,但我不确定应该在哪里实现它。如果我在同一类中创建一个新数组,我认为结果将是相同的。它应该保存到共享首选项中(似乎有点占用内存),或者保存在未读消息的小型数据库中?我已经为我的消息存储了一个值,用于判断它们是否被发送或接收。我可以运行一个查询来获取所有未读消息并填充一个列表,然后迭代它,但这似乎有点过度。你有什么建议吗?
更新:
尝试制作消息列表并像这样添加它们,但还是没有成功。
NotificationCompat.MessagingStyle messagingStyle = new
NotificationCompat.MessagingStyle(message.getRecipientName());
messagingStyle.setConversationTitle(
getSmsTodayYestFromMilli(message.getTime_stamp().getTime()));
if (messages != null)
for(DatabaseMessage dbMessage : messages){
messagingStyle.addMessage(dbMessage.getMessage(),
dbMessage.getTime_stamp().getTime(),dbMessage.getRecipientName());
}
}
notificationBuilder.setStyle(messagingStyle);