Skip to main content

发送消息时可以设置消息的阅后即焚时间 lifeTimeAfterRead,当消息被读后再经过 lifeTimeAfterRead 毫秒,消息会被销毁。

示例代码

MessageOptions o = new MessageOptions();
// 单位毫秒,该消息被读 5 分钟后会被自动删除。默认为 0,表示消息被读后也不自动删除。
o.setLifeTimeAfterRead(5 * 60 * 1000);
TextMessage textMessage = new TextMessage("Text");
Conversation conversation = new Conversation(Conversation.ConversationType.PRIVATE, "111");
JIM.getInstance().getMessageManager().sendMessage(textMessage, conversation, o, new IMessageManager.ISendMessageCallback() {
@Override
public void onSuccess(Message message) {

}

@Override
public void onError(Message message, int errorCode) {

}
});

消息发送成功后,接收方通过 sendReadReceipt() 方法来标识消息已读。

单聊消息从接收方已读后开始对发送和接收双方同时进行倒计时。

群聊消息的接收方从自己已读后开始倒计时,发送方从所有其他群成员已读后开始倒计时。

倒计时开始时,SDK 会回调 onMessageDestroyTimeUpdate(), 并把 Message 对象的 getDestroyTime() 自动设置成消息的已读时间加上 lifeTimeAfterRead,开发者可以依据这个时间来做界面倒计时。

示例代码

JIM.getInstance().getMessageManager().addDestroyListener("main", new IMessageManager.IMessageDestroyListener() {
@Override
public void onMessageDestroyTimeUpdate(String messageId, Conversation conversation, long destroyTime) {

}
});