请问conversation.getAllMessages()

问题描述

Demo中的MessageAdapter中的Handler中有这样一个方法,如图所示。注释中写了不能在UI线程中使用,那么Handler中不也是UI线程吗?

解决方案

handler就不是主线程了,你去看下handler的用法
解决方案二:
打印了一下  ChatActivity中onCreate() ,handler中的handleMessage,还有hanlder中的refreshList(),都是运行在同一线程的
解决方案三:
刷新UI必须是在主线程的,这个说的不能直接在UI线程conversation.getAllMessages() 是指不能在当前的操作下,要用Handler发送消息的方式
解决方案四:
但是代码里面handleMessage是在ui线程里调用的,不就是直接在UI线程conversation.getAllMessages() 吗?

时间: 2024-09-14 15:10:16

请问conversation.getAllMessages()的相关文章

onEvent回调中有收到消息,但conversation.getAllMessages()中没有收到的消息,怎么回事?

问题描述 onEvent回调中有收到消息,但conversation.getAllMessages()中没有收到的消息,怎么回事? 解决方案 你看下你的会话对象是不是你当前收到消息的对象?

conversation.getAllMessages()获取聊天记录问题

问题描述 List<EMMessage> messages = conversation.getAllMessages();   使用这句获取聊天记录,为什么有时候能得到,有时候获取不到? 解决方案 conversation.getAllMessages()是获取此conversation当前内存所有的message ,登录后调loadAllConversations将会话全加载到内存,再通过会话获取内存里的消息.看一下你都是什么时候获取到,什么时候获取不到,有什么提示和log没.

conversation.getAllMessages().size()问题

问题描述 在登出账号,重新登录的时候,EMChatManager.getInstance().getAllConversations 得到的convasations,通过for (EMConversation conversation : conversations) ,他的所有conversation.getAllMessages().size()永远为1:而EMChatManager.getInstance().getConversation(username),他的getAllMessag

单聊收发消息正常,APP退出后再启动却无法获得刚才的聊天记录

问题描述 聊天界面是这样初始化的:EMChatManager.getInstance().loadAllConversations();conversation = EMChatManager.getInstance().getConversation(username);lst_Chat = conversation.getAllMessages(); 发送消息是这样写的:EMMessage message = EMMessage.createSendMessage(EMMessage.Typ

接收消息后怎么存在本地,取了之后没有

问题描述 接收后调用这个方法conversation.addMessage(message);取消息用这个方法conversation.getAllMessages();这能取我发的,接收的取不出来,是取错了还是存错了查了一下内存数据库,都保存了,但是只能取自己发的,不能取到接收的 解决方案 获取会话需要传入对方的username

获取聊天记录时获取不全

问题描述 有多个聊天记录结果每次通过conversation.getAllMessages()只能获取一个的问题 解决方案 // 设置从db初始化加载时, 每个conversation需要加载msg的个数options.setNumberOfMessagesLoaded(1);看下这里的设置是不是1把这个参数改一下

为什么调用getConversation()获取不到?

问题描述 **为什么调用getConversation()获取不到?求助求助** 解决方案 A.登陆成功后需要调用EMGroupManager.getInstance().loadAllGroups();EMChatManager.getInstance().loadAllConversations();保证进入主页面后本地会话和群组都load完毕.另外如果登陆过,app长期在后台再进的时候也可能会导致加载到内存的群组和会话为空,可以在主页面的oncreate里也加上这两句代码,当然,更好的办法

为什么请求的会话列表总是多一行,且第一行是空的

问题描述 还是我请求的有问题. 解决方案 你看下EaseConversationListFragment这个类中的loadConversationList这个方法中,在代码层的 List<Pair<Long, EMConversation>> sortList = new ArrayList<Pair<Long, EMConversation>>(); synchronized (conversations) { for (EMConversation co

仿造demo移植,可是会话未读次数一直返回零。

问题描述 使用EaseUI,仿造demo进行移植,可是EaseConversationAdapater中的conversation.getUnreadMsgCount()和MainActivity中的getUnreadMsgCountTotal都是返回为零未读次数的红点都没有显示出来. 解决方案 看看你这边是不是执行过 刷新的操作 Handler handler = new Handler() { private void refreshList() { // UI线程不能直接使用convers