如何知道何时使用 room 在 table 中插入数据?
How to know when data is inserted in table using room?
我正在使用带有 kotlin 协程的 room 来管理数据库。我需要在将数据存储在 next activity 之后访问存储在数据库中的数据,但由于数据尚未存储,因此出现错误。如何知道何时在 table 中插入数据?
wordViewModel.insert(it.body()!!.guests[0])
val intent = Intent(this, Main2Activity::class.java)
startActivity(intent)
一种方法是在您的模型实体上创建内容观察器。您可以在线查找教程。基本上,内容观察器顾名思义,它观察内容并通知您是否有新的 "content" 可用(在本例中是数据库中的更改)。
其他,我想说,更好的方法是利用 LiveData。在您的 Dao
中,您只需添加具有类似签名的方法:
@Query(/*put your select query here*/)
fun getAll(): LiveData<List<YourModelClass>>
然后,在您的 activity 中,或者您想要观察变化的任何地方,调用
yourDao.getAll().observe(this, Observer { /* your observer implementation */ })
我正在使用带有 kotlin 协程的 room 来管理数据库。我需要在将数据存储在 next activity 之后访问存储在数据库中的数据,但由于数据尚未存储,因此出现错误。如何知道何时在 table 中插入数据?
wordViewModel.insert(it.body()!!.guests[0])
val intent = Intent(this, Main2Activity::class.java)
startActivity(intent)
一种方法是在您的模型实体上创建内容观察器。您可以在线查找教程。基本上,内容观察器顾名思义,它观察内容并通知您是否有新的 "content" 可用(在本例中是数据库中的更改)。
其他,我想说,更好的方法是利用 LiveData。在您的 Dao
中,您只需添加具有类似签名的方法:
@Query(/*put your select query here*/)
fun getAll(): LiveData<List<YourModelClass>>
然后,在您的 activity 中,或者您想要观察变化的任何地方,调用
yourDao.getAll().observe(this, Observer { /* your observer implementation */ })