【发布时间】:2020-04-02 22:14:36
【问题描述】:
我的应用中有一个协程,它将在延迟后开始一个新的活动,如下所示:
GlobalScope.launch() {
delay(1000L)
startActivity(Intent(this, ThisActivity::class.java))
}
但是我收到一个意图错误,说“以下函数都不能使用提供的参数调用”
我该如何解决这个问题?谢谢
【问题讨论】:
我的应用中有一个协程,它将在延迟后开始一个新的活动,如下所示:
GlobalScope.launch() {
delay(1000L)
startActivity(Intent(this, ThisActivity::class.java))
}
但是我收到一个意图错误,说“以下函数都不能使用提供的参数调用”
我该如何解决这个问题?谢谢
【问题讨论】:
问题是this指的是CoroutineScope:
GlobalScope.lauch(){
delay(1000L)
startActivity(Intent(this,ThisActivity::class.java))
}
您需要在此处指定上下文。如果你在一个 Activity(比如 MyActivity)中运行它,你可以这样做
GlobalScope.lauch(Dispatchers.Main) {
delay(1000L)
startActivity(Intent(this@MyActivity,ThisActivity::class.java))
}
【讨论】: