
IM即时通讯
安全可靠、全球互通

实时音视频
流畅稳定、省钱省力
回答:
实现须知
没有开通 “历史消息云存储”,只能删除本地的数据。在融云控制台开通 “历史消息云存储功能” 后,才可以删除远端消息。
实现步骤
1.调用 cleanHistoryMessages 方法,cleanRemote 传 true ,recordTime 传 当前的时间戳。
/** * 删除指定时间戳之前的消息,可选择是否同时删除服务器端消息 * <p>此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。</p> * <p>根据会话类型和 TargetId 清除某一会话指定时间戳之前的本地数据库消息(服务端历史消息), * 清除成功后只能从本地数据库(服务端)获取到该时间戳之后的历史消息。</p> * * @param conversationType 会话类型。 * @param targetId 会话目标ID。 * @param recordTime 清除消息截止时间戳,【0 ~ 当前时间的 Unix 时间戳】。 * @param cleanRemote 是否删除服务器端消息 * @param callback 清除消息的回调。 */ public void cleanHistoryMessages(final Conversation.ConversationType conversationType, final String targetId, final long recordTime, final boolean cleanRemote, final OperationCallback callback)
2.您使用的是 imlib ,还需要自行刷新您的界面。
3.您使用的是 imkit 调用 ConversationFragment 的 getMessageAdapter 方法,获取到会话界面消息展示适配器,移除数据并且刷新数据源。
mListAdapter.removeAll(); mListAdapter.notifyDataSetChanged();
4.卸载重装或者更换设备登陆后,历史消息还可以拉取到,来保证用户更换设备或者卸载重装后还可以有上下文。