gpt4 book ai didi

android - 数据库更新协程完成后,设置 bool 标志

转载 作者:行者123 更新时间:2023-12-02 12:45:13 25 4
gpt4 key购买 nike

一旦将数据保存到数据库的协程完成,我想将 livedata bool 标志设置为 true。我目前的代码如下:

在 View 模型中:

    private suspend fun updatePlace(eventId: Long, placeName: String, placeAddress: String) {
withContext(Dispatchers.IO) {
repository.updatePlace(placeName, placeAddress)
}
}

fun savePlace(placeName: String, placeAddress: String) {
val eventId = event.value!!.eId

uiScope.launch {
updatePlace(eventId, placeName, placeAddress)
}
//flag is currently set regardless of if the updatePlace function is completed
_currentPlaceUpdated.value = true

}

我一直在阅读有关异步和等待协程的信息,但还没有弄清楚在 updatePlace() 函数完成后如何设置 _currentPlaceUpdated 的值。

最佳答案

只需将完成任务放在 updatePlace 之后即可称呼。

uiScope.launch {
updatePlace(eventId, placeName, placeAddress)
_currentPlaceUpdated.value = true
}
withContext类似于 scope.async(Dispatchers.IO) { /* Code */ }.await()对返回值的传递进行了一些优化。
withContext暂停当前​​调用协程,直到其内部(代码块)完成。什么 launch确实是启动协程并让下一个代码执行,这就是立即调用它的原因。

关于android - 数据库更新协程完成后,设置 bool 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61776915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com