融云清空历史消息 Android 端
- 先调用获取历史消息。
/**
- 根据会话类型的目标 Id,回调方式获取N条历史消息记录。
*
- @param conversationType 会话类型。不支持传入 ConversationType.CHATROOM。
- @param targetId 目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id。
- @param oldestMessageId 最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为:-1。
- @param count 要获取的消息数量。
- @param callback 获取历史消息记录的回调,按照时间顺序从新到旧排列。
*/
public void getHistoryMessages(Conversation.ConversationType conversationType, String targetId, int oldestMessageId, int count, RongIMClient.ResultCallback<List<Message>> callback) {
RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, oldestMessageId, count, callback);
}
- 再调用删除的接口。
/**
- 删除指定的一条或者一组消息,回调方式获取是否删除成功。
*
- @param messageIds 要删除的消息 Id 数组。
- @param callback 是否删除成功的回调。
*/
public void deleteMessages(final int[] messageIds, final RongIMClient.ResultCallback<Boolean> callback) {
RongIMClient.getInstance().deleteMessages(messageIds, new RongIMClient.ResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean bool) {
if (bool)
RongContext.getInstance().getEventBus().post(new Event.MessageDeleteEvent(messageIds));
if (callback != null)
callback.onSuccess(bool);
}
@Override
public void onError(RongIMClient.ErrorCode e) {
if (callback != null)
callback.onError(e);
}
});
}
清除远端消息调接口
- cleanRemote 传 true ,时间戳传入当前的时间戳。
/**
- 删除指定时间戳之前的消息,可选择是否同时删除服务器端消息
- 此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。
- 根据会话类型和 TargetId 清除某一会话指定时间戳之前的本地数据库消息(服务端历史消息),
- 清除成功后只能从本地数据库(服务端)获取到该时间戳之后的历史消息。
*
- @param conversationType 会话类型。
- @param targetId 会话目标ID。
- @param recordTime 清除消息截止时间戳,【0 ~ 当前时间的 Unix 时间戳】。
- @param cleanRemote 是否删除服务器端消息
- @param callback 清除消息的回调。
*/
public void cleanHistoryMessages
- 如果界面没有刷新,重新进入看下是否全部删除了。
您好,
您先试下是否可以删除,如果可以删除,但是界面没有刷新刷新的话,您可以调用 ConversationFragment 的
getMessageAdapter 方法,然后
mListAdapter.removeAll();
mListAdapter.notifyDataSetChanged(); 试下。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。