领域AddChangeListner不工作?

时间:2017-07-02 11:32:35

标签: java android realm

我有两个类,其中一个类在表中添加数据,另一个类我已经检索了数据。我添加了changeListener,但是在更改表后它没有执行。以下是代码

  RealmResults<MessageContentTable> messageContentTables= 
   realmObject.where(MessageContentTable.class).findAllAsync();
    messageContentTables.addChangeListener((collection, changeSet) -> 
     {
        Log.e("Updating 123"+collection.size());

    });

1 个答案:

答案 0 :(得分:2)

您需要将字段变量(强引用)存储到RealmResults,否则它将被垃圾收集器使用,Realm将无法再调用更改侦听器。

RealmResults<MessageContentTable> messageContentTables;

public void something() {
    messageContentTables = realm.where(MessageContentTable.class).findAllAsync();
    messageContentTables.addChangeListener((collection, changeSet) -> {
        Log.e("Updating 123"+collection.size());
    });