Android Room DAO-对于生命周期感知和非感知的观察者,我们是否应该使用LiveData
在以下情况下,我们是否应该使用LiveData作为DAO接口中查询函数的返回结果:Android Room DAO-对于生命周期感知和非感知的观察者,我们是否应该使用LiveData,android,rx-java,android-room,android-jetpack,kotlin-coroutines,Android,Rx Java,Android Room,Android Jetpack,Kotlin Coroutines,在以下情况下,我们是否应该使用LiveData作为DAO接口中查询函数的返回结果: 我们希望在ViewModel(生命周期感知)中使用此功能 我们希望在DB初始值设定项中使用此函数(无生命周期意识) 我们希望在某种后台处理回调中使用它(无生命周期意识) 这里的最佳实践是什么?我们应该使用协同程序并转换为LiveData吗?我们应该使用rx吗?或者只创建两个具有不同返回结果类型的函数?LiveData应仅用于生命周期,并仅用于更新ui。LiveData观察程序始终在主线程中调用。如果要执行其他
- 我们希望在ViewModel(生命周期感知)中使用此功能
- 我们希望在DB初始值设定项中使用此函数(无生命周期意识)
- 我们希望在某种后台处理回调中使用它(无生命周期意识)
这里的最佳实践是什么?我们应该使用协同程序并转换为LiveData吗?我们应该使用rx吗?或者只创建两个具有不同返回结果类型的函数?LiveData应仅用于生命周期,并仅用于更新ui。LiveData观察程序始终在主线程中调用。如果要执行其他代码,应该使用流作为查询函数的返回类型。使用Flow,您可以指定执行代码的协同路由调度程序,并使用以下函数将其转换为LiveData:
liveData(Dispatchers.IO) {
myFlow.collect {
emit(it)
}
}
您还可以创建两种不同的方法