我有一个没有被触发的Realm结果更改监听器,这是代码:
final RealmResults<LogEntry> entries = realm.where(LogEntry.class).findAll();
entries.addChangeListener(new RealmChangeListener<RealmResults<LogEntry>>() {
@Override
public void onChange(RealmResults<LogEntry> results) {
Log.v("Testing", "The size is: " + results.size());
}
});
肯定添加了新的东西,我在域插入日志中打印出了表的新大小,但是由于某种原因,更改监听器什么也不做?我在这里错过了什么吗,似乎与文档相同。
最佳答案
您需要保留对entries
的类引用,以防止其被GC处理:
public MyClass {
private RealmResults<LogEntry> entries;
public void myMethod() {
entries = realm.where(LogEntry.class).findAll();
entries.addChangeListener(new RealmChangeListener<RealmResults<LogEntry>>() {
@Override
public void onChange(RealmResults<LogEntry> results) {
Log.v("Testing", "The size is: " + results.size());
}
});
}
}
关于android - Android Realm ChangeListener没有被触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43174517/