Package io.rong.imlib
Class IRongCoreListener.OnReceiveMessageWrapperListener
-
- All Implemented Interfaces:
-
io.rong.imlib.IRongCoreListener.OnReceiveMessageListener
public abstract class IRongCoreListener.OnReceiveMessageWrapperListener implements IRongCoreListener.OnReceiveMessageListener
接收消息的监听器。 注意:请切换线程,处理耗时操作。
此接口可以替换 OnReceiveMessageListener 用于解决接收大量消息时,界面频繁刷新问题。 该接口会返回 left 和 hasPackage 参数,两者可以配合使用判断何时拉取完离线消息。
-
-
Constructor Summary
Constructors Constructor Description IRongCoreListener.OnReceiveMessageWrapperListener()
-
Method Summary
Modifier and Type Method Description final booleanonReceived(Message message, int left)收到消息的处理。 booleanonReceived(Message message, ReceivedProfile profile)abstract booleanonReceived(Message message, int left, boolean hasPackage, boolean offline)接收实时或者离线消息。 注意: 1. voidonOfflineMessageSyncCompleted()离线消息接收完成 远端消息同步完成回调,每次连接成功触发一次 远端没有消息的时候,连接成功后会立即触发 远端有大量历史消息的时候,连接成功会等待消息接收完成之后触发 @5.2. -
-
Method Detail
-
onReceived
final boolean onReceived(Message message, int left)
收到消息的处理。
- Parameters:
message- 收到的消息实体。left- 剩余未拉取消息数目。- Returns:
收到消息是否处理完成。
-
onReceived
boolean onReceived(Message message, ReceivedProfile profile)
-
onReceived
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 标识最后一包的最后一条消息也已接收完毕。
- Parameters:
message- 接收到的消息对象left- 当客户端连接成功后,服务端会将所有补偿消息以消息包的形式下发给客户端,最多每 200 条消息为一个消息包,即一个 Package, 客户端接受到消息包后,会逐条解析并通知应用。left 为当前消息包(Package)里还剩余的消息条数hasPackage- 是否在服务端还存在未下发的消息包offline- 消息是否离线消息- Returns:
是否处理消息。 如果 App 处理了此消息,返回
true;否则返回false由 SDK 处理。
-
onOfflineMessageSyncCompleted
void onOfflineMessageSyncCompleted()
离线消息接收完成 远端消息同步完成回调,每次连接成功触发一次 远端没有消息的时候,连接成功后会立即触发 远端有大量历史消息的时候,连接成功会等待消息接收完成之后触发 @5.2.3增加
-
-
-
-