android - 在哪里可以找到 liveData 构建 block ?

标签 android kotlin kotlin-android-extensions kotlin-coroutines

https://developer.android.com/topic/libraries/architecture/coroutines

Android coroutines plus liveData 文档指出我们可以使用 liveData 构建器函数,以防我们想要在实时数据功能

val user: LiveData<User> = liveData {
    val data = database.loadUser() // loadUser is a suspend function.
    emit(data)
}
val user: LiveData<Result> = liveData {
    emit(Result.loading())
    try {
        emit(Result.success(fetchUser())
    } catch(ioException: Exception) {
        emit(Result.error(ioException))
    }
}

我尝试安装 lifecycle-viewmodel-ktx 库,但找不到这个 block 。

它位于哪里?

最佳答案

尝试:

implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha01'

函数在这里: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/lifecycle/livedata/ktx/src/main/java/androidx/lifecycle/CoroutineLiveData.kt

并且(当前)定义为:

@UseExperimental(ExperimentalTypeInference::class)
fun <T> liveData(
    context: CoroutineContext = EmptyCoroutineContext,
    timeoutInMs: Long = DEFAULT_TIMEOUT,
    @BuilderInference block: suspend LiveDataScope<T>.() -> Unit
): LiveData<T> = CoroutineLiveData(context, timeoutInMs, block)

关于android - 在哪里可以找到 liveData 构建 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56281551/

相关文章:

android - 如何将自定义maven存储库添加到gradle

懒惰的 Kotlin 抛出 NullPointerException

sqlite - 房间的日历类型转换器(Kotlin)

java - 如何打印getter方法的值

java - 如何从另一个类为 TextView 设置文本?

kotlin - 扩展Mockito验证Kotlin不起作用(在 “kotlin way”中)

java - 显示进度对话框,直到条件成立或时间结束

java - 来自不同类的自定义 SeekBarPreference setProgress?

java - 将 ArrayList 添加到另一个 ArrayList 中

java - 如何添加 onClick 到此?