gul*_*tel 6 android android-room android-livedata kotlin-flow
假设这是示例代码
实时数据查询
Query("SELECT IFNULL(COUNT(id),0) FROM Item WHERE status = :status")
fun getLiveData(status: Int): LiveData<Int>
Run Code Online (Sandbox Code Playgroud)
Kotlin 流查询
@Query("SELECT IFNULL(COUNT(id),0) FROM Item WHERE status = :status")
fun getFlowData(status: Int): Flow<Int>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如果房间数据库中发生任何变化,Flow 会获取新数据吗?
是的,如果房间数据库中发生任何更改,Flow 会发出新数据,如下例所示:
val flow = getFlowData(2) // type Flow<Int>
flow.collect { data ->
// every time anything changes, the code inside collect is going to get called again
}
Run Code Online (Sandbox Code Playgroud)
还有,它.first()
只会为您提供最新发出的数据,而不会进行实时更改:
val data = getFlowData(2).first() // type Int
Run Code Online (Sandbox Code Playgroud)
所以这取决于你如何使用 Flow,也取决于你的需求。
归档时间: |
|
查看次数: |
2880 次 |
最近记录: |