[6.4.0][启自驾指引] 逻辑优化2
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -237,6 +237,10 @@ object StatusManager {
|
||||
return ret
|
||||
}
|
||||
|
||||
fun hasInit(): Boolean {
|
||||
return hasInit
|
||||
}
|
||||
|
||||
interface IStatusListener {
|
||||
fun onStatusChanged(data: List<Status>, hasException: Boolean)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user