请选择 进入手机版 | 继续访问电脑版

默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教Android端IM中activity ui和聊天数据模型的交互方式实现方法
IM功能一般会有多个activity, 当收到聊天消息后,如何将这些消息通知到每个activity呢?可能的方案如下:
1. 通过android系统广播。每个activity从系统广播监听消息。 据说会有消息丢失的概率
2. 通过Android LiveData来管理收到的聊天消息,livedata和activity进行UI交互
3. 代码层面自己实现,每个activity都注册一个自己的listener, 收到消息后循环调用每个listener, 但activity不是活跃状态时调用会出错

请有经验的讨论下,谢谢


即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:求助 IM开发
上一篇:求指教怎么做IM多设备同时在线、消息同步功能?下一篇:求教im聊天消息在Andriod多activity展示时解决方法

本帖已收录至以下技术专辑

推荐方案
评论 4
晚上我来详细给你建议,下班了
签名: 《深入操作系统,一文读懂进程、线程、协程》http://www.52im.net/thread-3357-1-1.html
1. 广播在andriod系统里确实优先级比较低,极端情况下有可能延迟等等,因它导致用户体验那就不划算了。

2. LiveData或自已用观察者来实现,应该是经验办法。

3. 你应该是没有自已写过im,所以心里没底,也很惧怕。实际是无论是一对一好友聊天,还是多对多群聊,同时打开的界面肯定只有一个,界面打开时就加上数据模型变动观察者,界面销毁时就去掉观察者,不存在跟同一个人的聊天,会打开好多聊天界面的可能性,也就不存在同一个数据模型需要多个Listener的情况。

以上,我建议你可以直接开撸,写的时候就能有更深入的体验了,没你想的这么复杂。
签名: 《深入操作系统,一文读懂进程、线程、协程》http://www.52im.net/thread-3357-1-1.html
引用:JackJiang 发表于 2021-01-28 21:33
1. 广播在andriod系统里确实优先级比较低,极端情况下有可能延迟等等,因它导致用户体验那就不划算了。

...

站长,我的描述可能不当,但依然有多activity的消息展示的问题,新帖子
http://www.52im.net/thread-3328-1-1.html
引用:qidukeji 发表于 2021-01-29 10:40
站长,我的描述可能不当,但依然有多activity的消息展示的问题,新帖子
http://www.52im.net/thread-332 ...

我来看看你的新帖子
签名: 《深入操作系统,一文读懂进程、线程、协程》http://www.52im.net/thread-3357-1-1.html
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部