Преглед изворни кода

1.修改IM消息接受监听器移除功能

王鹏鹏 пре 2 година
родитељ
комит
b9fc57a697

+ 10 - 0
baselib/src/main/java/com/yingyangfly/baselib/utils/RxBusCodes.kt

@@ -127,4 +127,14 @@ object RxBusCodes {
      * 网络异常
      */
     const val ONCONNECTFAILED = "onConnectFailed"
+
+    /**
+     * IM登录成功
+     */
+    const val IMLoginSuccess = "IMLoginSuccess"
+
+    /**
+     * IM解除消息接收监听
+     */
+    const val IMLoginOut = "IMLoginOut"
 }

+ 16 - 9
home/src/main/java/com/yingyangfly/home/activity/HomeActivity.kt

@@ -135,7 +135,6 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
     }
 
     override fun initData() {
-        addSimpleMsgListener()
         initLiveData()
     }
 
@@ -168,14 +167,6 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
         }
     }
 
-    /**
-     * IM消息监听
-     */
-    private fun addSimpleMsgListener() {
-        //消息接受监听
-        V2TIMManager.getMessageManager().addAdvancedMsgListener(simpleMsgListener)
-    }
-
     /**
      * 获取app升级信息
      */
@@ -610,6 +601,22 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
                 reportLog("IM账号已在其他地方登录")
             }
         }
+
+        //IM登录成功
+        LiveEventBusUtil.observer<String>(this, RxBusCodes.IMLoginSuccess) {
+            runOnUiThread {
+                V2TIMManager.getMessageManager().addAdvancedMsgListener(simpleMsgListener)
+                Log.e("wpp", "IM登录成功,添加消息接收监听")
+            }
+        }
+
+        //IM解除消息接收监听
+        LiveEventBusUtil.observer<String>(this, RxBusCodes.IMLoginOut) {
+            runOnUiThread {
+                V2TIMManager.getMessageManager().removeAdvancedMsgListener(simpleMsgListener)
+                Log.e("wpp", "IM登录成功,IM解除消息接收监听")
+            }
+        }
     }
 
     /**

+ 4 - 0
login/src/main/java/com/yingyang/login/service/InitService.kt

@@ -16,7 +16,9 @@ import com.yingyangfly.baselib.ext.logd
 import com.yingyangfly.baselib.ext.loge
 import com.yingyangfly.baselib.net.BaseObserver
 import com.yingyangfly.baselib.net.BaselibServiceFactory
+import com.yingyangfly.baselib.utils.LiveEventBusUtil
 import com.yingyangfly.baselib.utils.NetWorkUtils
+import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.User
 
 class InitService : Service() {
@@ -41,6 +43,7 @@ class InitService : Service() {
     }
 
     private fun init() {
+        LiveEventBusUtil.send(RxBusCodes.IMLoginOut, "")
         userSigTx()
     }
 
@@ -65,6 +68,7 @@ class InitService : Service() {
             override fun onSuccess() {
                 Log.e("wpp", "IM登陆成功")
                 "IM登陆成功".logd()
+                LiveEventBusUtil.send(RxBusCodes.IMLoginSuccess, "")
             }
 
             override fun onError(p0: Int, p1: String?) {

+ 1 - 0
personalcenter/src/main/java/com/yingyang/personalcenter/personalcenter/PersonalCenterActivity.kt

@@ -197,6 +197,7 @@ class PersonalCenterActivity :
                     }
                 })
                 LiveEventBusUtil.send(RxBusCodes.LOGINOUT, "")
+                LiveEventBusUtil.send(RxBusCodes.IMLoginOut, "")
                 JumpUtil.jumpActivity(RouterUrlCommon.login, mContext)
                 reportLog("退出登录")
                 finish()