在延迟中在域数据库中更改数据

时间:2018-04-11 16:38:51

标签: android database realm

我正在向Android上的realm数据库写一些数据:

val realm = Realm.getDefaultInstance()
            realm.executeTransaction({
                val ValueModel = 
    realm.where(ValueModel::class.java).findFirst() ?: CnamModel()
                valueModel.value = value
                realm.copyToRealmOrUpdate(valueModel)
            })

几秒钟后,我正在尝试阅读它:

val realm = Realm.getDefaultInstance()
                val valueModel = 
   realm.where(ValueModel::class.java).findFirst()
   val myValue = valueModel.value

问题在于,当我在写入后很快执行此操作时,db具有旧值。我需要超过10秒才能从realm获取数据以获得新写入的值。如何解决问题,能够在写入事务结束后读取新值?

1 个答案:

答案 0 :(得分:0)

我不确定你是否关闭了这个领域,但尝试下面的代码,让我知道它是否有效。

Realm.getDefaultInstance().use { realm ->
// do something
}
  Java中的

try(Realm realm = Realm.getDefaultInstance()) {
// do something
}

如果您没有处理realm.insertOrUpdate(...)的返回结果,请使用realm.copyToRealmOrUpdate(..)