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 boolean
onReceived(Message message, int left)
收到消息的处理。 boolean
onReceived(Message message, ReceivedProfile profile)
abstract boolean
onReceived(Message message, int left, boolean hasPackage, boolean offline)
接收实时或者离线消息。 注意: 1. void
onOfflineMessageSyncCompleted()
离线消息接收完成 远端消息同步完成回调,每次连接成功触发一次 远端没有消息的时候,连接成功后会立即触发 远端有大量历史消息的时候,连接成功会等待消息接收完成之后触发 @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增加
-
-
-
-