public abstract static class RongIMClient.OnReceiveMessageWrapperListener extends java.lang.Object implements RongIMClient.OnReceiveMessageListener
此接口可以替换 RongIMClient.OnReceiveMessageListener 用于解决接收大量消息时,界面频繁刷新问题。
该接口会返回 left 和 hasPackage 参数,两者可以配合使用判断何时拉取完离线消息。
| 构造器和说明 |
|---|
OnReceiveMessageWrapperListener() |
| 限定符和类型 | 方法和说明 |
|---|---|
boolean |
onReceived(Message message,
int left)
收到消息的处理。
|
abstract boolean |
onReceived(Message message,
int left,
boolean hasPackage,
boolean offline)
接收实时或者离线消息。
|
public final boolean onReceived(Message message,
int left)
RongIMClient.OnReceiveMessageListeneronReceived 在接口中 RongIMClient.OnReceiveMessageListenermessage - 收到的消息实体。left - 剩余未拉取消息数目。public abstract boolean onReceived(Message message,
int left,
boolean hasPackage,
boolean offline)
注意:
1. 针对接收离线消息时,服务端会将 200 条消息打成一个包发到客户端,客户端对这包数据进行解析。
2. hasPackage 标识是否还有剩余的消息包,left 标识这包消息解析完逐条抛送给 App 层后,剩余多少条。
如何判断离线消息收完:
1. hasPackage 和 left 都为 0;
2. hasPackage 为 0 标识当前正在接收最后一包(200条)消息,left 为 0 标识最后一包的最后一条消息也已接收完毕。
message - 接收到的消息对象left - 每个数据包数据逐条上抛后,还剩余的条数hasPackage - 是否在服务端还存在未下发的消息包offline - 消息是否离线消息true;否则返回 false 由 SDK 处理。