道
@Query("SELECT * FROM t_work WHERE id = :id")
fun id(id: Int): Work
如何在ViewModel中定义一个变量来保存从数据库中查询出来的数据呢?之所以不使用Flow,是因为要查询的数据非常简单,基本上是枚举类的函数,而且这个数据不需要是可变的,只需要查询一次。
// wrong code
class WorkViewModel @Inject constructor(private val workDao: IWorkDao): ViewModel(){
val work = viewModelScope.async {
workRepository.ids(listOf(1, 2, 3))
}.await()
}
我不想在Compose中启动协同程序,它是视图层,这样会增加Compose代码的复杂度,有没有最优的解决方案?
1条答案
按热度按时间cygmwpex1#
基本上,您可以在ViewModel中启动一个协程,如下所示:
请确保按如下方式更新DAO:
这样,您就可以将操作卸载到后台调度程序。