wildfirechat / android-chat

即时通讯,聊天,野火IMAndroid客户端,支持Android 4.x —— 最新
http://docs.wildfirechat.cn
Other
2.51k stars 863 forks source link

华为手机切换应用后,onReceiveMessage短暂失效的现象 #834

Closed AFAP closed 8 months ago

AFAP commented 9 months ago

设备:华为手机 现象:从IM应用退出到桌面,此时给该用户发信息,能够在onReceiveMessage收到信息,并且在这个方法里判断当前处于后台使用,进行了角标的显示。但是这个时候,只要点开其他任何一个应用使用,如微信等,再回到桌面,给这个用户发信息,角标就不更新了(onReceiveMessage未收到信息),此时进入IM应用,会立即同步到全部未读信息数量。 备注:检查过push,当应用强杀后,push是能收到信息的,也就是说上面那个失效的空隙,推送服务并没有介入。

就是想知道产生这个的可能原因是什么。

heavyrain2012 commented 9 months ago

正常情况下,如果应用放到后台被冻结,操作系统会同时释放tcp长连接,IM服务那边会立即感应到用户离线,从而之后的消息走推送提醒。

所以这个问题,你可以连上android studio看一下日志,在打开其他应用时,IM在后台是不是还活着,是不是有协议栈的日志在打印。另外看一下IM服务的日志,看看有没有日志显示这个用户离线(IM服务日志是异步的,按照这个说明 https://docs.wildfirechat.cn/faq/server.html#Q__日志怎么改成同步写?怎么样才能高效地抓取问题日志? 改成同步的)。

如果没有结果,可以把android和IM服务的日志发送到邮箱 support@wildfirechat.cn 里面写上测试时间和用户id,我们会分析一下日志