处理会话未读消息数
即时通讯客户端常常需要对会话进行未读消息计数。
您可以使用 IMLib SDK 提供的接口直接获取会话中的未读消息数。具体能力如下:
- 获取所有会话(不含聊天室)中的未读消息总数(
getTotalUnreadCount
) - 获取指定会话中的总未读消息数,或指定会话中指定消息类型的总未读消息数,或按会话类型获取总未读消息总数(
getUnreadCount
)
在用户使用您的 App 时,UI 上未读计数可能需要发生变化,此时您可以清除会话中的未读数(clearMessagesUnreadStatus
)。
获取所有会话总未读消息数
您可以使用 getTotalUnreadCount
获取所有类型会话(不含聊天室)中未读消息的总数。
RongIMClient.getInstance().getTotalUnreadCount(callback);
获取成功后,callback
中会返回未读消息数(unReadCount
)。
RongIMClient.getInstance().getTotalUnreadCount(new ResultCallback<Integer>() {
@Override
public void onSuccess(Integer unReadCount) {
}
@Override
public void onError(RongIMClient.ErrorCode ErrorCode) {
}
});
获取指定会话的总未读消息数
获取指定会话中的未读消息总数。
RongIMClient.getInstance().getUnreadCount(conversationType, targetId, callback);
参数 | 类型 | 说明 |
---|---|---|
conversationType | ConversationType | 会话类型。不适用于聊天室、超级群。 |
targetId | String | 会话 ID |
callback | ResultCallback<Integer> | 回调接口 |
获取成功后,callback
中会返回未读消息数(unReadCount
)。
ConversationType conversationType = ConversationType.PRIVATE;
String targetId = " 会话 Id ";
RongIMClient.getInstance().getUnreadCount(conversationType, targetId,
new ResultCallback<Integer>() {
@Override
public void onSuccess(Integer unReadCount) {
}
@Override
public void onError(RongIMClient.ErrorCode ErrorCode) {
}
});