[6.4.0][启自驾指引] 逻辑优化2

This commit is contained in:
renwj
2024-04-29 17:11:34 +08:00
parent a02f404eea
commit 0ea3ca5384
2 changed files with 26 additions and 4 deletions

View File

@@ -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)
}
}
}
}

View File

@@ -237,6 +237,10 @@ object StatusManager {
return ret
}
fun hasInit(): Boolean {
return hasInit
}
interface IStatusListener {
fun onStatusChanged(data: List<Status>, hasException: Boolean)
}