说一下我的场景:
调用环信接口发送消息时,环信本地数据库会存储下来,我这里存储的逻辑是用对方的用户名 + 消息内容存到本地数据库,数据库的字段都是小写,如果此时对方用户名中包含大写字母,就会导致重启后取不到发送的消息记录,因为存的时候会自动把大写字母转换成小写。
解决办法:调用发送消息方法时,这里的toChatUsername 不要带大写字母就可以了
EMMessage message = EMMessage.createTxtSendMessage(content, toChatUsername); EMClient.getInstance().chatManager().sendMessage(message);
另外,不要忘记 重启后,或重新登录 把数据库数据 读取到缓存里,比如调用loadAllConversations()这个API去从本地数据库把会话加载到缓存中?如果没有加载到缓存中 直接取肯定获取不到