在jetpack compose中获取Application实例的方法/避免作用域结束导致协程取消


前言:

想知道如何获取这个application实例的起因是关于协程的取消。

 于是我创建了一个Application类,并在其中创建了一个CoroutineScope的变量。

class MyApplication:Application() {
    val applicationScope = CoroutineScope(SupervisorJob())
}

问题就是如何在其他地方可以获取到这个类的实例然后使用它里面那个scope。

 

一:先看看在activity中如何获取

一个activity中 {
val app = application as MyApplication
}


二:在fragment中

val app = (context as Activity).application as MyApplication

三:jetpack compose中

val context = LocalContext.current
            val app = remember {
                context.applicationContext as MyApplication
            }

四:结语

知识点就是activity和application都和context这个抽象类有继承关系。