跳到主要内容

删除会话

IMKit 在会话长按事件中默认实现了包含删除功能的操作菜单弹窗。

(width=250)

如果已有实现无法满足您的需求,可以使用 IMCenter 提供的删除会话 API:

删除指定会话

从会话列表移除会话项目,但不删除会话内的历史消息。该方法会自动触发会话列表页面刷新。

接口

Java
IMCenter.getInstance().removeConversation(conversationType, targetId, callbalk);

参数说明

参数类型说明
conversationTypeConversationType会话类型
targetIdString会话 Id
callbackResultCallback<Boolean>回调接口

示例代码

Java
ConversationType conversationType = ConversationType.PRIVATE;
String targetId = "会话 Id";

IMCenter.getInstance().removeConversation(conversationType, targetId, new ResultCallback<Boolean>() {

@Override
public void onSuccess(Boolean success) {

}

@Override
public void onError(RongIMClient.ErrorCode errorCode) {

}
});
提示

该方法仅从会话列表移除会话项目,不会删除会话历史消息数据。当该会话产生新消息时,系统将自动重建会话列表项。如需彻底删除会话数据,必须同步调用消息删除接口,同时清除本地及服务端的消息记录。具体操作请参阅删除消息

按类型删除会话

从本地数据库中删除指定会话类型的所有会话,并删除这些会话内的消息。IMKit 没有清除全部会话方法,您可以通过传入所有需要删除的类型来实现该效果。该方法会自动触发会话列表页面刷新。

Java
Conversation.ConversationType[] mConversationTypes = {
Conversation.ConversationType.PRIVATE,
Conversation.ConversationType.GROUP
};

IMCenter.getInstance().clearConversations(new RongIMClient.ResultCallback() {

@Override
public void onSuccess(Object object) {

}

@Override
public void onError(RongIMClient.ErrorCode errorCode) {

}
}, mConversationTypes);
参数类型说明
callbackResultCallback移除会话是否成功的回调
conversationTypesConversationType...需要清空的会话类型列表