跳到主要内容

删除会话

IMKit 默认在长按会话时显示以下弹窗,实现了删除会话功能。

(width=250)

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

删除指定会话

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

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) {

}
});
参数类型说明
conversationTypeConversationType会话类型
targetIdString会话 Id
callbackResultCallback<Boolean>回调接口
提示

该方法仅从会话列表移除会话项目,但不会删除会话内的历史消息。如果会话内再来一条消息,该会话会重新出现在列表中。如果需要移除会话并删除会话内的消息,必须同时调用消息的 API,您需要同时删除本地与远端的历史消息。详见删除消息

按类型删除会话

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

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...需要清空的会话类型列表