极光IM 之ConversationRefreshEvent
异常提示:Could not dispatch event: class cn.jpush.im.android.api.event.ConversationRefreshEvent
/**
* 接收消息漫游事件
* 如果在JMessageClient.init时启用了消息漫游功能,则每当一个会话的漫游消息同步完成时
* sdk会发送此事件通知上层。
**/
public void onEvent(ConversationRefreshEvent event) {
//获取事件发生的会话对象
//获取事件发生的原因,对于漫游完成触发的事件,此处的reason应该是
//MSG_ROAMING_COMPLETE
ConversationRefreshEvent.Reason reason = event.getReason();
switch (reason){
case MSG_ROAMING_COMPLETE:
Conversation conv = event.getConversation();
Logger.d("ConversationRefreshEvent:"+conv.toJson());
if (conv.getType().equals(ConversationType.single)) {
UserInfo userInfo = (UserInfo) conv.getTargetInfo();
String targetId = userInfo.getUserName();
String appKey = userInfo.getAppKey();
if (mIsSingle && targetId.equals(mTargetId) && appKey.equals(mTargetAppKey)) {
List<Message> refreshMsgList = conv.getMessagesFromNewest(0, ChattingListAdapter.PAGE_MESSAGE_COUNT);
Logger.d("获取漫游历史会话:"+ refreshMsgList.size());
if (refreshMsgList != null && refreshMsgList.size() > 0) {
mChatView.setToBottom();
Collections.reverse(refreshMsgList);//历史消息倒序
mChatAdapter.addMsgListToList(refreshMsgList);
}
}
} else {
long groupId = ((GroupInfo) conv.getTargetInfo()).getGroupID();
if (groupId == mGroupId) {
List<Message> refreshMsgList = conv.getMessagesFromNewest(0, ChattingListAdapter.PAGE_MESSAGE_COUNT);
if (refreshMsgList != null && refreshMsgList.size() > 0) {
mChatView.setToBottom();
Collections.reverse(refreshMsgList);//历史消息倒序
mChatAdapter.addMsgListToList(refreshMsgList);
}
}
}
break;
default:
break;
}
Logger.d(String.format(Locale.SIMPLIFIED_CHINESE, "收到ConversationRefreshEvent事件"));
}