我的应用程序中有一个协程,它将在延迟后启动一个新活动,如下所示:
GlobalScope.launch() {
delay(1000L)
startActivity(Intent(this, ThisActivity::class.java))
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个意图错误,指出“无法使用提供的参数调用以下函数”
我怎样才能解决这个问题?谢谢
Fra*_*esc 11
问题是this
指CoroutineScope
:
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)