【问题标题】:How to know when data is inserted in table using room?如何知道何时使用房间将数据插入表中?
【发布时间】:2019-10-15 13:36:00
【问题描述】:

我正在使用带有 kotlin 协程的 room 来管理数据库。我需要在将其存储在下一个活动中之后访问存储在数据库中的数据,但由于尚未存储数据,因此出现错误。如何知道数据何时插入到表中?

wordViewModel.insert(it.body()!!.guests[0])
val intent = Intent(this, Main2Activity::class.java)
startActivity(intent)

【问题讨论】:

  • insert的签名是什么?

标签: kotlin android-room kotlin-coroutines


【解决方案1】:

一种方法是在模型实体上创建内容观察器。您可以在线查找教程。基本上,内容观察者就是它的名字所暗示的,它观察内容并通知您是否有新的“内容”可用(在这种情况下是数据库中的更改)。

其他,我想说,更可取的方法是利用 LiveData。在您的Dao 中,您只需添加具有相似签名的方法:

@Query(/*put your select query here*/)
fun getAll(): LiveData<List<YourModelClass>>

然后,在您的活动中,或在您想观察变化的任何地方,调用

yourDao.getAll().observe(this, Observer { /* your observer implementation */ })

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多