Package io.rong.imlib.listener

## Class OnReceiveMessageWrapperListener

- All Implemented Interfaces:
    `io.rong.imlib.IRongCoreListener.OnReceiveMessageListener`

      public abstract class OnReceiveMessageWrapperListener
      extends IRongCoreListener.OnReceiveMessageWrapperListener

  接收消息的监听器。

  此接口可以替换 IRongCoreListener.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
    --- | ---
    `OnReceiveMessageWrapperListener()` |

  - ### Enum Constant Summary

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

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | `onReceivedMessage(Message message, ReceivedProfile profile)` | 接收实时或者离线消息。 注意:请切换线程，处理耗时操作。
    `boolean` | `onReceived(Message message, int left, boolean hasPackage, boolean offline)` | 接收实时或者离线消息。 注意: 1.

    - ### Methods inherited from class io.rong.imlib.IRongCoreListener.OnReceiveMessageWrapperListener

      `onOfflineMessageSyncCompleted, onReceived, onReceived`

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

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

- - ### Constructor Detail

    - #### OnReceiveMessageWrapperListener

          OnReceiveMessageWrapperListener()

  - ### Method Detail

    - #### onReceivedMessage

           abstract void onReceivedMessage(Message message, ReceivedProfile profile)

      接收实时或者离线消息。 注意:请切换线程，处理耗时操作。

      Parameters:
        `message` - 接收到的消息对象
        `profile` - ReceivedProfile，储存了 left（当客户端连接成功后，服务端会将所有补偿消息以消息包的形式下发给客户端，最多每 200 条消息为一个消息包，即一个 Package, 客户端接受到消息包后，会逐条解析并通知应用。left 为当前消息包（Package）里还剩余的消息条数）, hasPackage（是否在服务端还存在未下发的消息包）, offline（消息是否离线消息）

    - #### onReceived

           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 处理。