浏览 SDKs · Android
SDKsAndroid

加载历史消息

使用 getAdvancedHistoryMessageList 分页加载会话历史消息。

复制

getAdvancedHistoryMessageList() 从指定会话中向更早的时间方向分页读取消息。首次查询不指定起点;继续加载时,将上一页最后一条消息作为新的起点。

参数说明

参数类型是否必填说明
conversationIDString要读取历史消息的会话 ID。
startMsgMessage分页起点。首次传 null,后续传上一页最后一条消息。
countint本次最多读取的消息数,示例为 20
viewTypeViewType普通历史消息传 ViewType.History
OpenIMClient.getInstance().messageManager.getAdvancedHistoryMessageList(
    new OnBase<AdvancedMessage>() {
        @Override
        public void onSuccess(AdvancedMessage result) {
            List<Message> messages = result.getMessageList();
            boolean reachedBeginning = result.isEnd();
            // 按 clientMsgID 去重后,将 messages 添加到当前列表前方。
        }

        @Override
        public void onError(int code, String error) {
            // 保留当前列表,并提示本次加载失败。
        }
    },
    conversationID,
    startMessage,
    20,
    ViewType.History
);

返回结果

成功回调返回 AdvancedMessagemessageList 是本页消息,isEnd 表示是否已经到达历史消息起点;errCodeerrMsg 是结果对象携带的业务状态。历史查询只读取消息,不会触发新消息事件。