写点什么

融云清空历史消息 Android 端

发布于: 2021 年 03 月 15 日

融云清空历史消息 Android 端


  1. 先调用获取历史消息。


/**
复制代码


* 根据会话类型的目标 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);
复制代码


}
复制代码
  1. 再调用删除的接口。


/**
复制代码


* 删除指定的一条或者一组消息,回调方式获取是否删除成功。
复制代码


*
复制代码


* @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);
复制代码


}
复制代码


});
复制代码


}
复制代码


复制代码


复制代码

清除远端消息调接口


  1. cleanRemote 传 true ,时间戳传入当前的时间戳。


/**


  • 删除指定时间戳之前的消息,可选择是否同时删除服务器端消息

  • 此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。


  • 根据会话类型和 TargetId 清除某一会话指定时间戳之前的本地数据库消息(服务端历史消息),

  • 清除成功后只能从本地数据库(服务端)获取到该时间戳之后的历史消息。


复制代码


*
复制代码


复制代码


* @param conversationType 会话类型。
复制代码


复制代码


* @param targetId         会话目标ID。
复制代码


复制代码


* @param recordTime       清除消息截止时间戳,【0 ~ 当前时间的 Unix 时间戳】。
复制代码


复制代码


* @param cleanRemote      是否删除服务器端消息
复制代码


复制代码


* @param callback         清除消息的回调。
复制代码


复制代码


*/
复制代码


复制代码


public void cleanHistoryMessages
复制代码
  1. 如果界面没有刷新,重新进入看下是否全部删除了。


您好,


您先试下是否可以删除,如果可以删除,但是界面没有刷新刷新的话,您可以调用 ConversationFragment 的


getMessageAdapter 方法,然后


mListAdapter.removeAll();


mListAdapter.notifyDataSetChanged();试下。


用户头像

还未添加个人签名 2021.01.26 加入

还未添加个人简介

评论

发布
暂无评论
融云清空历史消息 Android 端