如何在协程中启动新活动?科特林安卓

Min*_*gdi 3 android kotlin

我的应用程序中有一个协程,它将在延迟后启动一个新活动,如下所示:

GlobalScope.launch() { 
   delay(1000L)
   startActivity(Intent(this, ThisActivity::class.java))
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个意图错误,指出“无法使用提供的参数调用以下函数”

我怎样才能解决这个问题?谢谢

Fra*_*esc 11

问题是thisCoroutineScope

GlobalScope.lauch(){
   delay(1000L)
   startActivity(Intent(this,ThisActivity::class.java))
}
Run Code Online (Sandbox Code Playgroud)

您需要在此处指定上下文。如果您在活动(例如,MyActivity)中运行它,您可以这样做

GlobalScope.lauch(Dispatchers.Main) {
   delay(1000L)
   startActivity(Intent(this@MyActivity,ThisActivity::class.java))
}
Run Code Online (Sandbox Code Playgroud)