( 最近更新时间: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
2
3
4
5
6
7
8
9
10
11
状态值详细可查看 ConnectionStatus (opens new window)
# 设置消息监听
设置消息接收监听器。所有接收到的消息(包括单聊消息、群组消息、聊天室消息等)都会在此接口方法中回调, 全局设置一次即可.
- 建议在 Application 中注册消息监听.
- 在 Activity 中注册消息监听. 当 Activity 被释放回收后,将无法收到回调.
# 参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
listener | OnReceiveMessageWrapperListener (opens new window) | 是 | 接收消息的监听器 |
- 接收消息注意:
(1) 针对接收离线消息时,服务端会将200条消息打成一个包发到客户端,客户端对这包数据进行解析。
(2) hasPackage 标识是否还有剩余的消息包,left 标识这包消息解析完逐条抛送给 App 层后,剩余多少条。
- 如何判断离线消息收完:
(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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21