6

我在我的应用程序中使用 Room 数据库作为主要数据源。目前我遇到了一个问题。我的应用程序中有这个流程:

  1. 显示数据库中的数据
  2. 从后端获取新数据
  3. 从数据库中删除旧数据
  4. 在数据库中插入新数据

问题出在第 3 步和第 4 步。UI 中显示的所有数据都由 LiveData 对象支持,因此当我从 db 中删除旧数据时,LiveData 对象会通知 UI db 为空,并且我的 UI 短暂变为空。一旦插入新数据,UI 就会被新数据填充。最初,我认为在一个事务中放置删除和插入操作会告诉房间“推迟”通知,直到setTransactionSuccessful()调用方法。然而,它并不能解决问题。

有谁知道如何实现所需的行为?(取消订阅 LiveData 对象除外)。

4

0 回答 0