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 参数，两者可以配合使用判断何时拉取完离线消息。

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `IRongCoreListener.OnReceiveMessageWrapperListener()` |

  - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---

  - ### 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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### IRongCoreListener.OnReceiveMessageWrapperListener

          IRongCoreListener.OnReceiveMessageWrapperListener()

  - ### 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增加