18034727885
2026-04-17 bddc945a6d0a6ac33300bddde6b4afe6461741fa
app/src/main/java/com/xw/yunwei/MyApp.kt
@@ -16,6 +16,7 @@
import com.alibaba.sdk.android.push.noonesdk.PushServiceFactory
import com.amap.api.maps.MapsInitializer
import com.scwang.smart.refresh.layout.SmartRefreshLayout
import com.tencent.bugly.crashreport.CrashReport
import com.xw.common.custom.ClassicsFooter11
import com.xw.common.custom.ClassicsHeader11
import com.xw.common.utils.ActivityManager
@@ -24,14 +25,18 @@
import com.xw.common.utils.MMKVManager
import com.xw.yunwei.di.networkModule
import com.xw.yunwei.model.AppPermissionModel
import com.xw.yunwei.websocket.WebSocketManager
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.GlobalContext.startKoin
import com.tencent.bugly.crashreport.CrashReport
class MyApp : Application() {
    companion object {
        private const val TAG = "MyApp"
        lateinit var myApp: MyApp
        var pageShowNum = 0 // 可见页面数
@@ -99,6 +104,7 @@
        SmartRefreshLayout.setDefaultRefreshFooterCreator { context, _ ->
            ClassicsFooter11(context)
        }
        initWebSocket()
    }
    fun initLog() {
@@ -132,7 +138,7 @@
        registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {
            override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
                ActivityManager.addActivity(activity)
                LogUtils.i("zmc-pageA", "onActivityCreated: " + activity.javaClass.name)
                LogUtils.i(TAG, "onActivityCreated: " + activity.javaClass.name)
                if (activity is AppCompatActivity) {
                    activity.supportFragmentManager.registerFragmentLifecycleCallbacks(object :
                        FragmentManager.FragmentLifecycleCallbacks() {
@@ -154,31 +160,31 @@
            }
            override fun onActivityStarted(activity: Activity) {
                LogUtils.d("zmc-pageA", "onActivityStarted: " + activity.javaClass.name)
                LogUtils.d(TAG, "onActivityStarted: " + activity.javaClass.name)
            }
            override fun onActivityResumed(activity: Activity) {
                LogUtils.i("zmc-pageA", "onActivityResumed: " + activity.javaClass.name)
                LogUtils.i(TAG, "onActivityResumed: " + activity.javaClass.name)
                currentShowActivity!!.complete(activity)
                pageShowNum++
            }
            override fun onActivityPaused(activity: Activity) {
                LogUtils.e("zmc-pageA", "onActivityPaused: " + activity.javaClass.name)
                LogUtils.e(TAG, "onActivityPaused: " + activity.javaClass.name)
                pageShowNum--
                currentShowActivity = null
            }
            override fun onActivityStopped(activity: Activity) {
                LogUtils.e("zmc-pageA", "onActivityStopped: " + activity.javaClass.name)
                LogUtils.e(TAG, "onActivityStopped: " + activity.javaClass.name)
            }
            override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
                LogUtils.d("zmc-pageA", "onActivitySaveInstanceState: " + activity.javaClass.name)
                LogUtils.d(TAG, "onActivitySaveInstanceState: " + activity.javaClass.name)
            }
            override fun onActivityDestroyed(activity: Activity) {
                LogUtils.e("zmc-pageA", "onActivityDestroyed: " + activity.javaClass.name)
                LogUtils.e(TAG, "onActivityDestroyed: " + activity.javaClass.name)
                ActivityManager.removeActivity(activity)
            }
        })
@@ -266,4 +272,44 @@
        })
    }
    //初始化websocket
    private fun initWebSocket() {
        WebSocketManager.initialize(this)
        CoroutineScope(Dispatchers.IO).launch {
            WebSocketManager.eventFlow.collect { event ->
                when (event) {
                    is WebSocketManager.WebSocketEvent.Connected -> {
                    }
                    is WebSocketManager.WebSocketEvent.ConnectFailed -> {
                    }
                    is WebSocketManager.WebSocketEvent.Message -> {
                        val currentShowActivity = MyApp.myApp.getCurrentShowActivity()
                        LogUtils.d(TAG, "显示activity ${currentShowActivity.javaClass.name}")
                    }
                    is WebSocketManager.WebSocketEvent.BinaryMessage -> {
                    }
                    is WebSocketManager.WebSocketEvent.Disconnected -> {
                    }
                }
            }
        }
    }
    //连接websocket
    fun connectWebSocket() {
        WebSocketManager.connect()
    }
    //断连websocket
    fun disconnectWebSocket() {
        WebSocketManager.disconnect()
    }
}