在以下情况下,我们应将LiveData用作DAO接口中Query函数的返回结果:
这里的最佳做法是什么?我们应该使用协程并将其转换为LiveData吗?我们应该使用rx吗?还是只创建两个具有不同返回结果类型的函数?
LiveData应该仅与生命周期一起使用,并且仅用于更新ui。始终在主线程中调用LiveData观察器。如果要执行其他代码,则应使用Flow作为Query函数的返回类型。使用Flow,您可以指定执行代码的协程分配器,并可以使用以下功能将其转换为LiveData:
liveData(Dispatchers.IO) {
myFlow.collect {
emit(it)
}
}
也可以创建两种不同的方法。