Kotlin runBlocking на фоне потока - PullRequest
0 голосов
/ 29 января 2019

Я в процессе преобразования существующего приложения из Java в Kotlin.Приложение создает IntentService , который выполняется в фоновом потоке и выполняет некоторые операции, которые блокируют поток (например, сетевые вызовы, взаимодействия с базой данных) с функциями suspend, многократно и неограниченно.Поскольку «текущий поток» на самом деле является фоновым потоком, я не блокирую пользовательский интерфейс.

Является ли хорошей практикой использование runBlocking в текущем потоке для запуска всех приостановленных функций?Или есть лучший подход?

1 Ответ

0 голосов
/ 01 марта 2019

Это как раз использование runBlocking.runBlocking был добавлен в сопрограммы для создания моста между пользователями coroutines и другими местами, которые выполняют код блокирующим образом.Если вы хотите, чтобы поток был заблокирован, и ожидали выполнения сопрограммы, вы всегда должны использовать runBlocking.

...