我正在开发一个具有用户之间聊天功能的Android应用,我想在收到新消息时更新聊天。
我已经可以使用FirebaseMessagingService类接收消息,但是,我不知道如何更新聊天活动。我遇到的问题是我希望它在收到消息时更新聊天活动,但我不知道如何检查聊天活动是否正在运行。
如何检查聊天活动是否正在运行,然后进行更新?
谢谢。
答案 0 :(得分:0)
基本上,我的想法是分层的:
Service
层将负责提取消息,然后处理它们,在这种情况下,可能会插入到持久层中。Persistence
层将负责以有组织的方式(通过对话或其他过滤器)保存所有历史消息ViewModel
层将处理从Persistence
层获取消息并将其发送到UI进行显示UI
层将从ViewModel
层接收“更新”,并相应地进行更新。现在,要完成您想要的实时行为,您需要研究一些我将在此处链接的Google的新架构组件:
ViewModel-促进MVVM架构(逻辑上的良好分离)并在生命周期更改中保持不变。在您的ViewModel
层中使用(duh!)。
Room-由Google团队编写的简单易用的SQLite包装器。这将在您的Persistence
层中使用。
LiveData-可观察的数据对象包装器,基本上在基础数据发生任何变化时,LiveData都会通知其观察者,以便它可以对新数据进行操作。这将为您提供所需的实时方面。而且,Room与LiveData完全兼容,因此,只要您的数据库发生更改,您就可以立即采取行动。
Room / MVVM / ViewModel / LiveData示例的网上有很多很好的示例,所以请检查一下以开始使用!