道
@Dao
interface LogDao {
@Query("SELECT * FROM log")
fun getAllLog(): Flow<List<LogEntity>>
}
存储库
override suspend fun getAllLog(): Flow<List<Log>> {
return logDao.getAllLog().transform {
emit(it.toModel())
}
}
视图模型
getAllLog().distinctUntilChanged().collect {
Log.d("TAG","log update : $it")
}
目前,我正在从 Room 收集数据,如上面的代码。
如果我改变同一项的参数值而不是改变列表的大小(不添加新数据),想要收集变化该怎么办??
如果您不更改或更新值,则只需更新单个项目,然后首先将先前的流程状态清空,然后获得新的更新并收集新值。如果你不这样做,那么流不会收集新的值,直到它的大小没有改变。