Почему автор не использует сопрограммы при вставке данных с помощью Room? - PullRequest
0 голосов
/ 06 апреля 2020

Следующий код взят из проекта Architecture-components-samples, вы можете увидеть it .

Автор использует фоновый поток для вставки или удаления данных.

Почему автор не использует сопрограммы при вставке или удалении данных с помощью Room?

CheeseViewModel. кт

class CheeseViewModel(app: Application) : AndroidViewModel(app) {
    ...

    fun insert(text: CharSequence) = ioThread {
        dao.insert(Cheese(id = 0, name = text.toString()))
    }

    fun remove(cheese: Cheese) = ioThread {
        dao.delete(cheese)
    }
}

Executors.kt

private val IO_EXECUTOR = Executors.newSingleThreadExecutor()

/**
 * Utility method to run blocks on a dedicated background thread, used for io/database work.
 */
fun ioThread(f : () -> Unit) {
    IO_EXECUTOR.execute(f)
}
...