数据库的刷新"/>
Folw + Room 实现自动观察数据库的刷新
1、Room :定义数据结构、创建数据库
// 定义实体
@Entity
data class TestModel ()
// 定义数据库
@Dao
interface TestDao {
@Query("SELECT * FROM TestTable")
fun getAll(): List<TestModel>
}
// 获取数据库
abstract class TestDatabase: RoomDatabase() {
}
2、Flow:响应数据
// 修改返回类型,实现从数据库连续发出数据
fun getAll(): Flow<List<TestModel>>
// 观察数据
lifecycle.coroutineScope.launch {testViewModel.testDao_getAll().collect() {testAdapter.submitList(it)}
}
3、原理
可以从数据库编译后的 getAll 代码里找到 CoroutinesRoom.createFlow
更多推荐
Folw + Room 实现自动观察数据库的刷新
发布评论