Android Realm ChangeListener未被触发

Car*_*ght 4 android realm

我有一个未被触发的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());
            }
        });
Run Code Online (Sandbox Code Playgroud)

肯定有新的东西被添加,我有一个登录领域插入打印出表的新大小,但由于某种原因,更改监听器什么都不做?我在这里遗漏了什么,它似乎与文档相同.

Chr*_*ior 23

你需要保持一个类引用,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());
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)