IM 即时通讯 (439)
Android (207)
- 初始化&链接 (8)
- 事件&监听处理 (7)
- 用户信息 (13)
- 会话列表 (15)
- 聊天会话 (26)
- 消息处理 (35)
- 自定义消息 (6)
- 音视频 (2)
- 推送&通知 (33)
- 扩展功能 (4)
- 第三方地图 (3)
- 依赖&配置 (9)
- 升级说明 (3)
- 其他 (43)
iOS (167)
- SDK 导入 (9)
- 连接 (8)
- 事件处理 (2)
- 用户信息 (3)
- 会话列表 (14)
- 聊天会话 (44)
- 消息处理 (25)
- 自定义消息 (8)
- 推送&通知 (19)
- 扩展功能 (5)
- 国际化 (3)
- 音视频 (4)
- 其他 (23)
Web (36)
Server (29)
点击通知启动应用时,怎么判断是否需要 connect()
怎么判断融云连接是否断开,是否需要再次调用 connect()?
比如点击通知时,如果是后台通知,IM 处于连接状态,此时不需要再次调用 connect(); 如果是推送通知,或者虽然是后台通知,但点击时 IM 连接已经断开了,需要调用 connect(). 代码里怎么进行上述场景的判断?
发布时间: 2018-10-23 11:15
回答:
参考实现:
点击通知时跳转的 activity 继承自基类 BaseActivity.
在 BaseActivity 的 onCreate() 中增加如下代码:
Intent intent = getIntent(); Uri data = intent != null ? intent.getData() : null; String pushParam = data != null ? data.getQueryParameter("isFromPush") : null; isPush = pushParam != null && pushParam.equals("true"); boolean isBackgroundNotify = pushParam != null && pushParam.equals("false"); //push 通知 if (isPush //应用被杀死,后台通知依然存在 || (isBackgroundNotify && IMTask.IMKitApi.getCurrentConnectionStatus().equals(RongIMClient.ConnectionStatusListener.ConnectionStatus.DISCONNECTED)) //界面被回收恢复 || (savedInstanceState != null && !IMTask.IMKitApi.getCurrentConnectionStatus().equals(RongIMClient.ConnectionStatusListener.ConnectionStatus.CONNECTED))) { if(本地缓存有效) { RongIM.connect(); } }