2017-04-02 70 views
1

我有一个领域业绩变动未触发听众,这里是代码:的Android领域的ChangeListener未触发

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

有添加肯定新的东西,我对日志领域插入打印新表的大小,但由于某种原因,更改侦听器什么都不做?我在这里错过了一些东西,看起来与文档完全相同。

回答

10

你需要保持一个类参考entries,以防止它被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()); 
      } 
     }); 
    } 
} 
+0

干杯,完美的作品吧! –