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

Я пытаюсь остановить сопрограмму, если пользователь нажимает кнопку. Однако, когда я делаю:

GlobalScope.launch(Dispatchers.Main) {
     //code
}

button.setonclicklistener(){
    GlobalScope.cancel()
}

Приложение вылетает. Как я могу это исправить?

Ответы [ 2 ]

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

Измените это так

var job: Job? = null


job = GlobalScope.launch(Dispatchers.Main) {
    //code
}

button.setonclicklistener(){
    job?.cancel()
}
0 голосов
/ 04 апреля 2020

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

val job =GlobalScope.launch(Dispatchers.Main) {
    try {
       //code
    } finally {
        println("job: I'm running finally")
    }
}
job.cancelAndJoin() // cancels the job and waits for its completion
println("main: Now I can quit.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...