Android Realm ChangeListener not being triggered

杀马特。学长 韩版系。学妹 提交于 2019-12-04 01:36:13

问题


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.


回答1:


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());
            }
        });
    }
}


来源:https://stackoverflow.com/questions/43174517/android-realm-changelistener-not-being-triggered

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!