【发布时间】:2021-05-28 12:14:05
【问题描述】:
我有一个返回领域对象的函数。
private fun getNext(): MyRealmObject? {
var item: MyRealmObject? = null
try {
Realm.getDefaultInstance().use { realm ->
realm.executeTransaction { r: Realm ->
item = r.where(MyRealmObject::class.java).equalTo(MyRealmObject.PROPERTY_ID, 1).findFirst() ?: return@executeTransaction
}
}
} catch (e: Exception) {
Log.e(TAG, e.localizedMessage!!)
} finally {
return item
}
}
但是,当我调用该函数并尝试访问属性时,我得到了错误:
IllegalStateException: 这个 Realm 实例已经关闭, 使其无法使用。
private fun doSomething() {
val item = getNext() ?: return
val title = item.title // Error thrown here
}
我在这里做错了什么?
MyRealmObject.kt
@RealmClass
open class RealmPhoto : RealmObject() {
@PrimaryKey
@Index
lateinit var id: Int
var title: String = ""
companion object {
const val PROPERTY_ID = "id"
}
}
【问题讨论】: