Android Realm ChangeListener没有被触发 [英] Android Realm ChangeListener not being triggered
本文介绍了Android Realm ChangeListener没有被触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个Realm结果更改侦听器,它没有被触发,这是代码:
I've got a Realm results change listener that isn't being triggered, here's the code:
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());
}
});
肯定添加了新的东西,我在域插入日志中打印出了表的新大小,但是由于某种原因,更改侦听器什么也不做?我在这里丢失了什么吗?似乎与文档相同.
There is definitely new stuff being added, I have a log on the realm insertion printing out the new size of the table, yet for some reason the change listener does nothing? Am I missing something here, it seems identical to the docs.
推荐答案
您需要保留对entries
的类引用,以防止被GC使用:
You need to keep a class reference to entries
to prevent it from being GC'ed:
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 Realm ChangeListener没有被触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文