删除会话
IMKit 默认在长按会话时显示以下弹窗,实现了删除会话功能。
如果已有实现无法满足您的需求,可以使用 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) {
}
});
参数 | 类型 | 说明 |
---|---|---|
conversationType | ConversationType | 会话类型 |
targetId | String | 会话 Id |
callback | ResultCallback<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);
参数 | 类型 | 说明 |
---|---|---|
callback | ResultCallback | 移除会话是否成功的回调 |
conversationTypes | ConversationType... | 需要清空的会话类型列表 |