你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
H-Mo/怠惰
// 会话列表刷新事件 @Subscribe(threadMode = ThreadMode.MAIN) public void onBus(ConversationsListRefreshEvent event){ Log.i("mo--", "接收到会话列表刷新事件"); refresh(); }
// 环信的消息监听 private EMMessageListener mMessageListener = new EMMessageListener(){ // 收到消息 @Override public void onMessageReceived(List<EMMessage> list) { android.util.Log.i("mo--", "接收到一条消息"); // 每次收到消息,都要刷新会话列表 EventBus.getDefault().post(new ConversationsListRefreshEvent()); } // 收到透传消息 @Override public void onCmdMessageReceived(List<EMMessage> list) { } // 收到已读回执 @Override public void onMessageRead(List<EMMessage> list) { } // 收到已送达回执 @Override public void onMessageDelivered(List<EMMessage> list) { } // 消息状态变动 @Override public void onMessageChanged(EMMessage emMessage, Object o) { } };
/** * refresh ui */ public void refresh() { if(!handler.hasMessages(MSG_REFRESH)){ handler.sendEmptyMessage(MSG_REFRESH); } }
protected Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { switch (msg.what) { case 0: onConnectionDisconnected(); break; case 1: onConnectionConnected(); break; case MSG_REFRESH: { conversationList.clear(); conversationList.addAll(loadConversationList()); conversationListView.refresh(); break; } default: break; } } };
要回复问题请先登录或注册
1 个回复
H-Mo/怠惰
这里我使用EventBus
1.继承EaseConversationListFragment,然后设置事件监听
2.在收到新的消息的时候出发刷新列表事件
至于为什么在点击搜索款后可以刷新消息,我猜与这个有关
再来看看这个 refresh() 做了什么
给handler发了一条消息,再去handler中看
点进 loadConversationList()可以看到EMClient.getInstance().chatManager().getAllConversations();这样的代码.
到这里,已经很清晰了,
其实就是重新加载了一次数据,在Fragment的onHiddenChanged和onResume中.