package com.sw.dualscreen import android.app.Activity import android.os.Bundle import com.sw.dualscreen.objbox.ObjectBox import com.sw.dualscreen.sdk.SensorScaleUtils import com.sw.dualscreen.utils.ActivityManager import com.sw.dualscreen.utils.CrashHandler import com.sw.dualscreen.utils.SPUtil import com.sw.dualscreen.utils.SpTool import com.sw.plate.App import com.sw.plate.utils.AppUtil import timber.log.Timber class MyApp : App() { companion object { const val DEBUG: Boolean = true var instance: MyApp? = null } override fun onCreate() { super.onCreate() instance = this Timber.plant(Timber.DebugTree()) var deviceId = AppUtil.getUDID(this) Timber.d("deviceId = $deviceId") // deviceId = "3ea47dc0-3cf0-3c2f-909c-265a9a65572e" GlobalData.deviceId = deviceId ObjectBox.init(this) // 初始化崩溃处理器 CrashHandler.init(this) SensorScaleUtils.startScale() addActivityLifecycleListener() // 优先读取用户手动切换后持久化的 url val savedUrl = SpTool.baseUrl if (!savedUrl.isNullOrEmpty()) { GlobalData.appBaseUrl = savedUrl } else { // 未保存过则使用默认逻辑:特定设备走测试环境,其余走 UAT GlobalData.appBaseUrl = if ("2987f0c5-5754-33e9-b00a-251db5e2e55f" == deviceId) GlobalData.TEST_BASE_URL else GlobalData.PROD_BASE_URL } } private fun addActivityLifecycleListener() { registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks { override fun onActivityCreated( activity: Activity, savedInstanceState: Bundle? ) { ActivityManager.addActivity(activity) } override fun onActivityStarted(activity: Activity) { } override fun onActivityResumed(activity: Activity) { } override fun onActivityPaused(activity: Activity) { } override fun onActivityStopped(activity: Activity) { } override fun onActivitySaveInstanceState( activity: Activity, outState: Bundle ) { } override fun onActivityDestroyed(activity: Activity) { ActivityManager.removeActivity(activity) if (ActivityManager.isEmpty()) { SensorScaleUtils.closeScale() } } }) } }