浏览 SDKs · Android
平台
SDKsAndroid商业版

读取消息上下文

读取指定锚点消息前后的上下文消息列表。

复制

围绕指定锚点消息,向前后两个时间方向同时拉取一定数量的上下文消息。常用于从全局搜索结果、回复引用或系统通知跳转定位到具体消息时,还原其前后的完整对话语境。

String conversationID = "si_user_a_user_b";
int before = 20; // 锚点之前拉取的条数
int after = 20;  // 锚点之后拉取的条数

OpenIMClient.getInstance().messageManager.fetchSurroundingMessages(
    new OnBase<Messages>() {
        @Override
        public void onSuccess(Messages messages) {
            List<Message> surrounding = messages.getData();
            // surrounding 包含目标锚点消息及其前后的上下文消息
        }

        @Override
        public void onError(int code, String error) {
            // 处理获取失败
        }
    },
    conversationID,
    targetMessage,
    ViewType.Search,
    before,
    after
);

参数说明

参数类型是否必填说明
baseOnBase<Messages>是异步请求回调。
conversationIDString是锚点消息所在的会话 ID。
startMsgMessage是作为定位基准的锚点消息对象。
typeViewType是上下文查看类型:从引用回复跳转通常传 ViewType.History,从搜索结果跳转通常传 ViewType.Search。
beforeint是锚点消息之前(更早)最多读取的消息数量。
afterint是锚点消息之后(更新)最多读取的消息数量。

返回结果

成功回调返回包含锚点在内的前后上下文消息列表 List<Message>。

客户端应以 clientMsgID 为标识进行列表排重与高亮定位。当锚点靠近历史消息两端或中间部分消息已被清理时,实际返回的消息总数可能会少于请求数量。若需预先定位单条消息,请参阅按 ID 查找消息。