fun <E : RealmModel> E.addChangeListener(listener: RealmChangeListener<E>): Unit
値フィールドまたは参照された RealmObject フィールドが変更された場合、または RealmList フィールド自体が変更された場合にトリガーされる変更リスナーを RealmObject に追加します。
変更リスナーを登録しても、基礎となる RealmObject がガベージされるのを防ぐものではありません。 RealmObject がガベージ コレクションされると、変更リスナーはトリガーされなくなります。 これを回避するには、クラス変数内で適切な例がある限り、強力な参照を保持します。
class MyActivity : Activity {
private var person: Person?
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
person = realm.where<Person>().findFirst()
person?.addChangeListener(RealmChangeListener { person ->
// React to change
})
}
}
IllegalArgumentException
- object
がnull
または非管理オブジェクトである場合、または変更リスナーがnull
の場合。
IllegalStateException
- 非 loader または IntentService スレッドからリスナーを追加しようとする場合。
IllegalStateException
- トランザクション内にリスナーを追加しようとする場合。
fun <E : RealmModel> E.addChangeListener(listener: RealmObjectChangeListener<E>): Unit
RealmObject に 変更リスナー を追加して、変更に関する詳細情報を取得します。 リスナーは、値フィールドまたは参照された RealmObject フィールドが変更された場合、または RealmList フィールド自体が変更された場合にトリガーされます。
変更リスナーを登録しても、基礎となる RealmObject がガベージされるのを防ぐものではありません。 RealmObject がガベージ コレクションされると、変更リスナーはトリガーされなくなります。 これを回避するには、クラス変数内で適切な例がある限り、強力な参照を保持します。
class MyActivity : Activity {
private var person: Person?
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
person = realm.where<Person>().findFirst()
person?.addChangeListener(RealmObjectChangeListener { person, changeSet ->
// React to change
})
}
}
IllegalArgumentException
- object
がnull
または非管理オブジェクトである場合、または変更リスナーがnull
の場合。
IllegalStateException
- 非 loader または IntentService スレッドからリスナーを追加しようとする場合。