diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/apm/IApmEnvProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/apm/IApmEnvProvider.kt index 9a4b98bcc8..f7526cc502 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/apm/IApmEnvProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/apm/IApmEnvProvider.kt @@ -1,10 +1,13 @@ package com.mogo.eagle.core.function.api.devatools.apm +import androidx.annotation.WorkerThread + interface IApmEnvProvider { fun init(buildType: String, netType: String, dockerVersion: String) fun onEnvChanged(buildType: String, netType: String, dockerVersion: String) + @WorkerThread fun isDebugEnabled(): Boolean? } \ No newline at end of file diff --git a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java index 0f953a63cf..266a399abf 100644 --- a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java +++ b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java @@ -27,6 +27,10 @@ import com.mogo.test.crashreport.ITestCrashReportProvider; import java.util.HashMap; +import rx.Observable; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + /** * @author congtaowang @@ -50,16 +54,24 @@ public class ApmCrashReportProvider implements ITestCrashReportProvider { @Override public void init(Context context) { - IApmEnvProvider provider = CallerDevaToolsManager.INSTANCE.apmEnvProvider(); - boolean isDebug = DebugConfig.isDebug(); - if (provider != null) { - Boolean enabled = provider.isDebugEnabled(); - if (enabled != null) { - isDebug = enabled; - } - } - initCrash(context, isDebug); - initApmInsight(context, isDebug); + Observable.defer(() -> { + IApmEnvProvider provider = CallerDevaToolsManager.INSTANCE.apmEnvProvider(); + boolean isDebug = DebugConfig.isDebug(); + if (provider != null) { + Boolean enabled = provider.isDebugEnabled(); + if (enabled != null) { + isDebug = enabled; + } + } + return Observable.just(isDebug); + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .doOnNext(isDebug -> { + initCrash(context, isDebug); + initApmInsight(context, isDebug); + }).subscribe(); + } private void initCrash(final Context context, boolean isDebug) {