IM 即时通讯
Android
开发指南

圈组消息缓存

更新时间: 2024/01/31 11:46:49

圈组提供消息缓存功能,只需要在初始化时打开设置开关即可调用QChatMessageService接口中提供的相关方法,获取消息缓存或者清空消息缓存。

功能介绍

开启消息缓存后,可以为100个频道(QChatChannel)缓存消息,每个频道最多缓存20条。如果超出,则按消息的创建时间淘汰最晚的。 如果单个频道的消息数超过20,则保留创建时间最新的20条消息;如果有消息的频道数超过100,则对比每个频道中创建时间最晚的消息的创建时间tm,保留tm最大的100个频道。

前提条件

已在初始化时开启消息缓存开关(将SDKOptions#enabledQChatMessageCache设置为true)。

实现方法

获取消息缓存

调用getMessageCache方法或getMessageCacheBlock(同步)方法获取指定频道的消息缓存。

示例代码如下:

NIMClient.getService(QChatMessageService.class).getMessageCache(943445L,885305L).setCallback(new RequestCallback<List<QChatMessageCache>>() {
    @Override
    public void onSuccess(List<QChatMessageCache> param) {
        // 查询成功
    }

    @Override
    public void onFailed(int code) {
        // 查询失败
    }

    @Override
    public void onException(Throwable exception) {
        // 查询出现异常
    }
});

清空消息缓存

调用clearMessageCache方法可清空指定频道的消息缓存。

示例代码如下:

NIMClient.getService(QChatMessageService.class).clearMessageCache();
此文档是否对你有帮助?
有帮助
去反馈
  • 功能介绍
  • 前提条件
  • 实现方法
  • 获取消息缓存
  • 清空消息缓存