当我使用 Room db 中的流程以 List <Data class type> 的形式获取整个内容时,如何收集更改?

问题描述 投票:0回答:1

@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 收集数据,如上面的代码。

如果我改变同一项的参数值而不是改变列表的大小(不添加新数据),想要收集变化该怎么办??

android kotlin android-room kotlin-flow
1个回答
0
投票

如果您不更改或更新值,则只需更新单个项目,然后首先将先前的流程状态清空,然后获得新的更新并收集新值。如果你不这样做,那么流不会收集新的值,直到它的大小没有改变。

© www.soinside.com 2019 - 2024. All rights reserved.