融云清空历史消息 Android 端

白帽安全
• 阅读 992

融云清空历史消息 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();
试下。

点赞
收藏
评论区
推荐文章
单聊、群聊、聊天室、超级群在融云端历史消息存储时间分别是多长?
单聊历史消息与群聊历史消息在融云为同一项存储服务:单群聊历史消息云存储。需自行在开发者后台IM服务管理页面的普通服务标签下开通,开通后单聊、群聊历史消息默认存储6个月。
如何在服务端发送 SDK 提供的自定义消息
根据存储策略来设置对应的objectNameRC:IWNormalMsg:客户端存储,支持离线消息机制,且存入服务端历史消息,计入未读消息数RC:IWCmdMsg:客户端不存储,支持离线消息机制,不计入未读消息数RC:IWStatusMsg:客户端不存储,
如何清理会话消息及清除 iOS IM SDK 缓存图片?
融云SDK中新增了deleteMessages方法,用于删除某个会话中的所有消息,同时会整理压缩数据库,减少占用空间,此方法不可频繁循环调用。方法如下:/!删除某个会话中的所有消息@paramconversationType会话类型,不支持聊天室@para
删除消息后,卸载重装应用,删除的消息又出现了
问题描述同时删除本地消息和服务端历史消息后,卸载重装应用或者换设备登录,删除的消息重新出现。原因分析针对单聊会话、群聊会话,如果通过任何接口以传入时间戳的方式删除远端消息,服务端默认不会删除对应的离线消息补偿(该机制仅会在打开多设备消息同步开关后生效)。此
融云IM即时通讯 融云IM即时通讯
9个月前
融云IM干货丨【 IM 服务】如何下载历史消息?如何获取历史消息日志?怎么下载消息日志
要下载IM服务的历史消息或获取历史消息日志,您可以按照以下步骤操作:开通服务:首先,需要确保您的AppKey已经开通了相关的历史消息日志下载服务。例如,融云提供的单群聊消息云端存储服务需要在控制台IM服务管理页面为当前使用的AppKey开启服务。使用服务端
融云IM即时通讯 融云IM即时通讯
9个月前
融云IM干货丨如果用户不在线,推送通知会怎样处理?
如果用户不在线,融云的推送通知会按照以下方式处理:离线消息推送:当用户不在线时,融云会将收到的单聊消息、群聊消息、系统消息、超级群消息通过第三方推送厂商或融云自建的推送服务通知客户端。这意味着即使用户的应用没有运行,他们也能通过系统通知栏接收到消息提醒。服
融云IM即时通讯 融云IM即时通讯
8个月前
融云IM干货丨在Electron中获取历史消息,可以通过以下几种方式实现
在Electron中获取历史消息,可以通过以下几种方式实现:使用融云服务获取历史消息:从远端获取单群聊历史消息,需要AppKey已启用融云提供的单群聊消息云端存储服务。可以通过RongIMLib.getHistoryMessages方法拉取指定会话的历史消
融云IM即时通讯 融云IM即时通讯
8个月前
融云IM干货丨Electron中如何拉取指定消息类型的历史消息?
在Electron中拉取指定消息类型的历史消息,可以使用融云提供的RongIMLib.electronExtension.getHistoryMessagesByMessageTypes方法。以下是具体的步骤和代码示例:定义会话信息:首先,你需要定义一个会
融云IM即时通讯 融云IM即时通讯
8个月前
融云IM干货丨在Electron中实现获取历史消息,需要注意以下几点
在Electron中实现获取历史消息时,需要注意以下几点:服务开通:从远端获取单群聊历史消息需要AppKey已启用融云提供的单群聊消息云端存储服务。请在融云控制台IM服务管理页面为当前使用的AppKey开启服务。注意,仅IM旗舰版或IM尊享版可开通该服务。
融云IM即时通讯 融云IM即时通讯
7个月前
融云 IM 干货丨获取会话列表或者历史消息报 25101 的错误?
出现获取会话列表或者历史消息报25101错误,主要有以下几种原因及解决方法:融云平台SDK版本过低:如果未执行撤回动作却出现25101报错,这是低版本SDK的已知问题,建议升级至最新SDK。未开通单群聊云存储服务:出现25101报错还可能是由于未开通单群聊
融云IM即时通讯 融云IM即时通讯
7个月前
融云 IM 干货丨单群聊云存储服务开通后,如何验证生效?
单群聊云存储服务开通后,可以通过以下几种方法验证其是否生效:1.查看控制台设置确认服务状态:登录融云控制台,进入“IM服务管理”页面,检查“单群聊消息云存储”服务是否已开启。如果已开启,服务状态应显示为“已启用”。2.发送消息并检查历史记录发送新消息:在单
白帽安全
白帽安全
Lv1
我不止三岁我当然识趣过去极进取令玻璃粉碎
文章
3
粉丝
0
获赞
0