我有两个类,其中一个类在表中添加数据,另一个类我已经检索了数据。我添加了changeListener,但是在更改表后它没有执行。以下是代码
RealmResults<MessageContentTable> messageContentTables=
realmObject.where(MessageContentTable.class).findAllAsync();
messageContentTables.addChangeListener((collection, changeSet) ->
{
Log.e("Updating 123"+collection.size());
});
答案 0 :(得分:2)
您需要将字段变量(强引用)存储到RealmResults,否则它将被垃圾收集器使用,Realm将无法再调用更改侦听器。
RealmResults<MessageContentTable> messageContentTables;
public void something() {
messageContentTables = realm.where(MessageContentTable.class).findAllAsync();
messageContentTables.addChangeListener((collection, changeSet) -> {
Log.e("Updating 123"+collection.size());
});