公式ドキュメントの通知セクションから通知タイプを理解しようとしています。複数の管理対象オブジェクトでRealmObject addChangeListenerを使用している場合は、1つのオブジェクトだけが変更されているときにすべて呼び出されます。RealmObject changeListener
これは私が(最初の例の場合)、これらのPersonオブジェクトのいずれかで更新をトリガするときのリスナーの両方が呼び出されている私のコード
Person first = realm.where(Person.class).equalTo("id", 0).findFirst();
first.addChangeListener(new RealmChangeListener<Person>() {
@Override
public void onChange(Person person) {
Log.e(LOG_TAG, "First element is changing: " + person);
}
});
Person second = realm.where(Person.class).equalTo("id", 1).findFirst();
second.addChangeListener(new RealmChangeListener<Person>() {
@Override
public void onChange(Person person) {
Log.e(LOG_TAG, "Second person is changing: " + person);
}
});
あります。
この公式ドキュメントは言う:
リスナーもインスタンスだけでなく、RealmResultsインスタンスをRealmObjectに取り付けることができます。これにより、オブジェクトの変更やクエリの結果に反応することができます。
そして
その参照型が変更されたときに最後に、入力されたベースの変更リスナーが通知されます。
私の見ている動作は2番目の定義に同意しますが、最初の動作を使用する必要があります。つまり、そのリスナーに対応するオブジェクトが変更されたときに通知を受けたいと思います。 したがって、最初のPersonが更新された場合、対応するリスナーだけが通知され、すべてのPersonリスナーは通知されません。
ありがとう!私はそれを言っている多くの人を見つけましたが、公式の文書で読んだもののために私がそれらを無視したほど古いものもありました。再度、感謝します! – juanes666