Room无法使用协同程序正确更新所有查询

时间:2019-10-07 10:55:57

标签: android kotlin android-room kotlin-coroutines

我在一个表中有120条记录,我想一个接一个地更新所有记录。房间无法以某种方式更新整个记录。虽然我看到了日志输出,但是在87条记录中,无法更新。 (我通过导出到数据库浏览器获取sqlite以及通过代码获取数据来检查表)

PreferencesActivity

private fun updateSample()  {
  for (x in 1..114) {
    preferencesViewModel.updateRecords(x)
  }
}

viewmodel

fun updateRecords(x: Int) = runBlocking {
  launch(Dispatchers.IO){
    database.surahDataDao().update(x, x, x)
    Log.e("AAAA", "database.preferencesDataDao().update($x, $x, $x)")
  }
}

dao

@Query("Update Preferences Set start = :start, end = :end WHERE Id = :number")
fun update(start: Int, end: Int, number: Int)

记录器的一些日志输出

在线程[DefaultDispatcher-worker-1,5,main]上运行-> update(6236,6231,114) 在Thread [DefaultDispatcher-worker-3,5,main]-> update(6230,6226,113)上运行 在Thread [DefaultDispatcher-worker-3,5,main]-> update(6225,6222,112)上运行 在Thread [DefaultDispatcher-worker-3,5,main]-> update(6221,6217,111)上运行 在Thread [DefaultDispatcher-worker-6,5,main]-> update(6216,6214,110)上运行 在Thread [DefaultDispatcher-worker-3,5,main]-> update(6213,6208,109)上运行 在Thread [DefaultDispatcher-worker-6,5,main]-> update(6207,6205,108)上运行 在Thread [DefaultDispatcher-worker-4,5,main]-> update(6204,6198,107)上运行 在Thread [DefaultDispatcher-worker-1,5,main]-> update(6197,6194,106)上运行 在Thread [DefaultDispatcher-worker-1,5,main]-> update(6193,6189,105)上运行 在Thread [DefaultDispatcher-worker-6,5,main]-> update(6188,6180,104)上运行 在Thread [DefaultDispatcher-worker-5,5,main]-> update(6179,6177,103)上运行 在Thread [DefaultDispatcher-worker-5,5,main]-> update(6176,6169,102)上运行 在Thread [DefaultDispatcher-worker-2,5,main]-> update(6168,6158,101)上运行 在Thread [DefaultDispatcher-worker-2,5,main]-> update(6157,6147,100)上运行

。 。

0 个答案:

没有答案