Поток в блоке withContext(Dispatchers.IO)
должен быть фоновой нитью . Если мы разместим там логи:
operator fun invoke(token: String, callback: TaskCallback) {
scope.launch {
withContext(Dispatchers.IO) { Log.e("Log", "t: ${Thread.currentThread()}") }
callback.onCompleted()
}
}
мы увидим Тема [DefaultDispatcher-worker-1,5, main] . Таким образом, поток является фоновым потоком .
Как отметил @Marko Topolnik в комментариях, основная цель сопрограмм - избавиться от обратных вызовов. Пожалуйста, попробуйте изменить код и удалить callback: TaskCallback
.