Невозможно вызвать функцию приостановки из запуска - PullRequest
0 голосов
/ 23 июня 2019

Я новичок в сопрограммах kotlin, и я пытаюсь вызвать функцию приостановки из oncreate с помощью запуска.Но код не будет выполнен.

launch {
    callSomeApi()
}

suspend fun callSomeApi() {
    withContext(Dispatcher.IO) {
        //perform network call
    }
}

Он говорит, что функция приостановки должна вызываться только из сопрограммы или другой функции приостановки.Хотя я звоню с запуска.Пожалуйста, дайте мне знать, что я делаю не так? см. Прикрепленное изображение

1 Ответ

1 голос
/ 23 июня 2019

Вы должны сделать так:

  CoroutineScope(Dispatchers.Main).launch {
            someSuspendFunction()
        }

таким образом вы назначаете CoroutineScope для управления процессами сопрограмм.Помните, что вы должны полностью импортировать зависимости сопрограмм:

    // coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.0'
implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2'
...