Wenn ich ein Objekt A
, das eine Realm-Liste von B
enthält, wenn ich eine Abfrage für ein bestimmtes A habe und ein Element in seiner B
Liste bearbeiten; Ich erhalte keine ÄnderungsbenachrichtigungBenachrichtigungen in Realm für innere Objekte ändern?
Ist dies das gewünschte Verhalten?
Codebeispiel:
class ExerciseInfo : RealmObject() {
@PrimaryKey
var id: String? = null
var muscleFields: MuscleFields? = null
}
class MuscleFields : RealmObject() {
var muscles: RealmList<Muscle>? = null
}
class Muscle : RealmObject() {
var id: String? = null
var name: String? = null
}
//Example, performed inside a Realm transaction
realm.where(ExerciseInfo::class.java)
.findFirst()
.muscleFields
?.muscles
?.let{ it.first().name += ":)" }
Alle der oben genannten ist Beispielcode - aber das Szenario ist genau das gleiche.
Ich kann überprüfen, dass die Bearbeitung durchgeführt und in der Datenbank gespeichert wird; und dass für das ExecuteInfo RealmObject keine Änderungsbenachrichtigung ausgelöst wird, unabhängig davon, ob ich es mit einer addChangeListener() - oder der Flowable-Methode verwende. Darüber hinaus funktioniert dasselbe Szenario , wenn die vorgenommene Änderung direkt in der Übungsklasse durchgeführt wird, z. Bearbeiten einiger Felder direkt in der ExerciseInfo-Klasse und nicht eines anderen Objekts darin.
Ich hoffe, dass das Sinn macht. Thought Id poste dies auf SO vor dem Realm Github, da es etwas ist, das ich verpasst habe, und kein Bug.
Irgendeine Idee? - Gib mir Bescheid. Vielen Dank!
Was die 'RealmChangeListener' hinzugefügt? – EpicPandaForce
@EpicPandaForce Das ExerciseInfo-Objekt. – zoltish
Wie, 'exerciseInfo.addChangeListener (new RealmObjectChangeListener' oder so ähnlich? Nicht die' realmResults'? – EpicPandaForce