通知消息存储消息的样式



因此,我正在构建一个消息应用程序,并尝试使用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);

我知道这是一个老问题,但这对一些人来说可能很有用。

您可以从现有通知中提取以前的消息:

NotificationCompat.MessagingStyle style = NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification(existingNotification);
style.getMessages();

所以我找到了如何做到这一点,但仍然不确定将列表存储在哪里,但要添加消息,你实际上需要创建一个NotificationCompat.MessagingStyle.Message,然后使用addMessage方法,现在我正试图获得所有未读消息的列表并对其进行迭代,但它仍然存在问题,但我认为这些问题需要一个新的问题,这就是添加消息:

NotificationCompat.MessagingStyle messagingStyle = new 
NotificationCompat.MessagingStyle(message.getRecipientName());
messagingStyle.setConversationTitle(getSmsTodayYestFromMilli(
message.getTime_stamp().getTime()));
if (messages != null){
Log.d(MYTAG,"list size " + messages.size());
for(DatabaseMessage databaseMessage : messages){
NotificationCompat.MessagingStyle.Message notificationMessage  = new 
NotificationCompat.MessagingStyle.Message(
databaseMessage.getMessage(),
databaseMessage.getTime_stamp().getTime(),
databaseMessage.getRecipientName()
);
messagingStyle.addMessage(notificationMessage);
}
}
notificationBuilder.setStyle(messagingStyle);

相关内容

  • 没有找到相关文章

最新更新