Как узнать, когда данные вставляются в таблицу с использованием комнаты? - PullRequest
0 голосов
/ 15 октября 2019

Я использую комнату с сопрограммами kotlin для управления базой данных. Мне нужно получить доступ к данным, хранящимся в базе данных, сразу после их сохранения в следующем упражнении, но это дает ошибку, поскольку данные еще не сохранены. Как узнать, когда данные вставлены в таблицу?

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

1 Ответ

0 голосов
/ 15 октября 2019

Один из способов - создать обозреватель контента на вашей модели. Вы можете искать учебники онлайн. По сути, наблюдатель контента - это то, что предлагает его имя, он наблюдает за контентом и уведомляет вас, если есть новый доступный контент (в данном случае изменение в базе данных).

Другое, и я быскажем, предпочтительным способом является использование LiveData. В вашем Dao вы просто добавляете метод с похожей подписью:

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

, затем в своей деятельности или там, где вы хотите наблюдать изменения, вы вызываете

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