| | |
| | | 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 |
| | |
| | | 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 // 可见页面数 |
| | | |
| | |
| | | SmartRefreshLayout.setDefaultRefreshFooterCreator { context, _ -> |
| | | ClassicsFooter11(context) |
| | | } |
| | | initWebSocket() |
| | | } |
| | | |
| | | fun initLog() { |
| | |
| | | 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() { |
| | |
| | | } |
| | | |
| | | 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) |
| | | } |
| | | }) |
| | |
| | | }) |
| | | } |
| | | |
| | | //初始化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() |
| | | } |
| | | } |