Pārlūkot izejas kodu

保活服务启动优化,解决开机启动概率报异常问题

weizhengliang 6 mēneši atpakaļ
vecāks
revīzija
83bc7e5d07

+ 4 - 1
android_mobile/src/main/yd_w_xiaomi_2_chile/code/com/wdkl/ncs/android/component/home/activity/WatchHome2Activity.kt

@@ -130,8 +130,11 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
 
         initCountDownTimer()
 
-        if (DaemonEnv.app == null && !WdKeepAliveService.instanceCreated) {
+        if (DaemonEnv.app == null) {
             DaemonEnv.init(this)
+        }
+
+        if (!WdKeepAliveService.instanceCreated) {
             Log.d(TAG, "开始 WdKeepAliveService")
             DaemonEnv.startServiceSafely(this, WdKeepAliveService::class.java)
         }

+ 2 - 1
android_mobile/src/main/yd_w_xiaomi_2_chile/code/com/wdkl/ncs/android/component/home/service/WdKeepAliveService.kt

@@ -101,6 +101,8 @@ class WdKeepAliveService : AbsWorkService() {
             EventBus.getDefault().register(this)
         }
 
+        instanceCreated = true
+
         //全局调用一次
         Thread {
             Log.d(TAG, "Constants.tcpServer: " + Constants.tcpServer)
@@ -108,7 +110,6 @@ class WdKeepAliveService : AbsWorkService() {
                 Thread.sleep(3000)
             }
             TcpClient.getInstance().init(Constants.tcpServer, Constants.tcpPort, Constants.heartBeat)
-            instanceCreated = true
         }.start()
 
         //播放一个短音频来获取音频焦点,之后才能监听到耳机按键

+ 1 - 1
keepalive/src/main/java/com/wdkl/ncs/keepbackground/watch/WatchProcessPrefHelper.java

@@ -52,7 +52,7 @@ public class WatchProcessPrefHelper {
     }
 
     public static boolean getIsStartDaemon(Context context){
-        return context.getSharedPreferences(SHARED_UTILS, Context.MODE_MULTI_PROCESS).getBoolean(KEY_IS_START_DAEMON, false);
+        return context.getSharedPreferences(SHARED_UTILS, Context.MODE_MULTI_PROCESS).getBoolean(KEY_IS_START_DAEMON, true);
     }