From 0ea3ca53840a47dcf7c6f8461f53bdbe9f3a8b67 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 29 Apr 2024 17:11:34 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.0][=E5=90=AF=E8=87=AA=E9=A9=BE=E6=8C=87?= =?UTF-8?q?=E5=BC=95]=20=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=962?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 26 ++++++++++++++++--- .../status/StatusManager.kt | 4 +++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 29319fff0b..8e9ff21002 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -39,6 +39,9 @@ import com.tencent.matrix.trace.config.SharePluginInfo import com.tencent.matrix.trace.config.TraceConfig import com.zhjt.mogo_core_function_devatools.apm.* import com.mogo.eagle.core.function.api.upgrade.* +import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope +import com.mogo.eagle.core.utilcode.util.AppStateManager +import com.mogo.eagle.core.utilcode.util.IAppStateListener import com.mogo.weak.network.SdtManager import com.zhjt.mogo_core_function_devatools.adas.PowerOffManager import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager @@ -70,11 +73,13 @@ import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.up import com.zhjt.mogo_core_function_devatools.weaknetwork.DetectResultImpl import com.zhjt.mogo_core_function_devatools.weaknetwork.WeakNetworkStrategy import com.zhjt.service.chain.ChainLog +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import java.lang.ref.WeakReference import java.util.concurrent.ConcurrentHashMap @Route(path = MogoServicePaths.PATH_DEVA_TOOLS) -class DevaToolsProvider : IDevaToolsProvider { +class DevaToolsProvider : IDevaToolsProvider, IAppStateListener { companion object { const val TAG = "DevaToolsProvider" @@ -169,9 +174,22 @@ class DevaToolsProvider : IDevaToolsProvider { block.init(it) block.start() } - mContext?.also { - StatusManager.init(it) - StatusManager.addListener(TAG, statusListener) + AppStateManager.registerAppStateListener(this) + } + + override fun onAppStateChanged(isForeground: Boolean) { + if (isForeground && !StatusManager.hasInit()) { + mContext?.lifeCycleScope?.launch { + while (!StatusManager.hasInit()) { + val activity = AppStateManager.currentActivity() + if (activity == null) { + delay(500) + continue + } + StatusManager.init(activity) + StatusManager.addListener(TAG, statusListener) + } + } } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt index 8869012398..0bf856b1f9 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/status/StatusManager.kt @@ -237,6 +237,10 @@ object StatusManager { return ret } + fun hasInit(): Boolean { + return hasInit + } + interface IStatusListener { fun onStatusChanged(data: List, hasException: Boolean) }