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

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

    });

最佳答案

您需要将字段变量(强引用)存储到RealmResults中,否则垃圾收集器将使用它,并且Realm将不再能够调用更改侦听器。

RealmResults<MessageContentTable> messageContentTables;

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

关于java - Realm AddChangeListner无法正常工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44870353/

10-08 21:38