소스 검색

优化接口数据获取失败时的处理

weizhengliang 2 년 전
부모
커밋
c73bf24619
1개의 변경된 파일11개의 추가작업 그리고 3개의 파일을 삭제
  1. 11 3
      android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

+ 11 - 3
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -127,6 +127,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
     private var broadcastChannelId: String = ""
     private var playing = false
     private val myHandler = Handler(Looper.getMainLooper())
+    private val checkHandler by lazy { Handler(Looper.getMainLooper()) }
 
     //主信息
     private val mainFragment = "main_fragment"
@@ -346,9 +347,16 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
                     val response = okHttpClient.newCall(request).execute()
                     if (response != null && response.isSuccessful) {
                         Log.d(TAG, "checkServer response success")
-                        //接口数据获取成功
-                        serverSuccess = true
+                        //接口数据获取成功,获取服务器数据
                         presenter.loadServerInfo()
+
+                        //延迟30s判断服务器数据和设备信息是否获取成功,否则重试
+                        checkHandler.removeCallbacksAndMessages(null)
+                        checkHandler.postDelayed({
+                            if (loaded && tcpConnect && initialized) {
+                                serverSuccess = true
+                            }
+                        }, 30000)
                     } else {
                         Log.e(TAG, "checkServer response fail")
                         //接口数据获取失败,可能服务器ip不对,尝试重新获取服务器ip
@@ -364,7 +372,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
                 }
 
                 try {
-                    Thread.sleep(30000)
+                    Thread.sleep(45000)
                 } catch (ex: Exception) {
                     ex.printStackTrace()
                 }