全部文档

( 最近更新时间:2020-04-28 19:00:00 )

# 设置状态监听

设置连接状态监听. 连接的状态都会通过此接口进行返回.

# 参数说明
参数 类型 必填 说明
listener ConnectionStatusListener (opens new window) 连接状态变化的监听器
# 代码示例
RongIMClient.setConnectionStatusListener(new RongIMClient.ConnectionStatusListener() {
    
    /**
        * 连接状态返回回调
        * @param status 状态值
        */
    @Override
    public void onChanged(ConnectionStatus status) {
        
    }
});
已复制
1
2
3
4
5
6
7
8
9
10
11

状态值详细可查看 ConnectionStatus (opens new window)

# 设置消息监听

设置消息接收监听器。所有接收到的消息(包括单聊消息、群组消息、聊天室消息等)都会在此接口方法中回调, 全局设置一次即可.

  1. 建议在 Application 中注册消息监听.
  2. 在 Activity 中注册消息监听. 当 Activity 被释放回收后,将无法收到回调.
# 参数说明
参数 类型 必填 说明
listener OnReceiveMessageWrapperListener (opens new window) 接收消息的监听器
  1. 接收消息注意:

(1) 针对接收离线消息时,服务端会将200条消息打成一个包发到客户端,客户端对这包数据进行解析。

(2) hasPackage 标识是否还有剩余的消息包,left 标识这包消息解析完逐条抛送给 App 层后,剩余多少条。

  1. 如何判断离线消息收完:

(1) hasPackage 和 left 都为 0;

(2) hasPackage 为 0 标识当前正在接收最后一包(200条)消息,left 为 0 标识最后一包的最后一条消息也已接收完毕。

# 代码示例
RongIMClient.getInstance().setOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
  /**
    * 接收实时或者离线消息。
    * 注意: 
    * 1. 针对接收离线消息时,服务端会将 200 条消息打成一个包发到客户端,客户端对这包数据进行解析。
    * 2. hasPackage 标识是否还有剩余的消息包,left 标识这包消息解析完逐条抛送给 App 层后,剩余多少条。
    * 如何判断离线消息收完:
    * 1. hasPackage 和 left 都为 0;
    * 2. hasPackage 为 0 标识当前正在接收最后一包(200条)消息,left 为 0 标识最后一包的最后一条消息也已接收完毕。
    * 
    * @param message    接收到的消息对象
    * @param left       每个数据包数据逐条上抛后,还剩余的条数
    * @param hasPackage 是否在服务端还存在未下发的消息包
    * @param offline    消息是否离线消息
    * @return 是否处理消息。 如果 App 处理了此消息,返回 true; 否则返回 false 由 SDK 处理。
    */
    @Override
    public boolean onReceived(final Message message, final int left, boolean hasPackage, boolean offline) {

    }
});
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助