Forráskód Böngészése

初始化数据加载优化

weizhengliang 2 éve
szülő
commit
ea6821b9fa

+ 24 - 11
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/activity/CallingdoorActivity.kt

@@ -113,6 +113,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     private var bedCalls = ArrayList<CallingItem>()
 
     private val handler by lazy { Handler(Looper.getMainLooper()) }
+    private val checkHandler by lazy { Handler(Looper.getMainLooper()) }
 
     //网络异常计数
     private var netErrCount : Int = 0
@@ -364,8 +365,15 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                     val response = okHttpClient.newCall(request).execute()
                     if (response != null && response.isSuccessful) {
                         //接口数据获取成功,进入下一步获取设备信息
-                        serverSuccess = true
                         presenter.loadServerInfo()
+
+                        //延迟30s判断服务器数据和设备信息是否获取成功,否则重试
+                        checkHandler.removeCallbacksAndMessages(null)
+                        checkHandler.postDelayed({
+                            if (loaded && initialized) {
+                                serverSuccess = true
+                            }
+                        }, 30000)
                     } else {
                         //接口数据获取失败,可能服务器ip不对,尝试重新获取服务器ip
                         val info = ServerInfoUtil.get(Constant.DEVICE_REGISTER_ID!!)
@@ -379,7 +387,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                 }
 
                 try {
-                    Thread.sleep(30000)
+                    Thread.sleep(45000)
                 } catch (ex: Exception) {
                     ex.printStackTrace()
                 }
@@ -719,6 +727,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
             SerialPortUtil.getInstance().closeHeart()
             SerialPortUtil.getInstance().closeSerialPort()
         }
+        handler.removeCallbacksAndMessages(null)
     }
 
     //数据加载错误
@@ -799,18 +808,26 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
         SettingConfig.setNetErrResetCount(this, 0)
 
-        Thread(Runnable {
+        Thread {
             while (!initialized) {
-                runOnUiThread(Runnable {
+                runOnUiThread {
                     initDevice()
-                })
+                }
+
                 try {
-                    Thread.sleep(20000)
+                    Thread.sleep(25000)
                 } catch (e: Exception) {
                     //
                 }
             }
-        }).start()
+        }.start()
+
+        //30s后检查版本
+        handler.postDelayed({
+            //检查版本
+            Constant.silentUpdate = true
+            checkAppVersion()
+        }, 30000)
     }
 
     //显示设备信息
@@ -874,10 +891,6 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                 WdklSipService.getCore().defaultProxyConfig = cfg
             }
         }
-
-        //检查版本
-        Constant.silentUpdate = true
-        checkAppVersion()
     }
 
     override fun setPartSettings(partSetting: PartSettingDO) {