Как я могу начать новое действие в сопрограмме? Kotlin Android - PullRequest
1 голос
/ 03 апреля 2020

В моем приложении есть сопрограмма, которая после новой задержки запускает новое действие, например:

GlobalScope.launch() { 
   delay(1000L)
   startActivity(Intent(this, ThisActivity::class.java))
}

Однако я получаю сообщение об ошибке, сообщающее, что «ни одна из следующих функций не может быть вызвана с помощью предоставленные аргументы "

Как это исправить? Спасибо

1 Ответ

2 голосов
/ 03 апреля 2020

Проблема в том, что 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))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...