2017-07-02 29 views
0

我有兩個類,其中一個類將數據添加到表中的另一個類中,我已經檢索了數據。我添加了changeListener,但在表更改後它沒有執行。下面是代碼Realm AddChangeListner不工作?

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

    }); 
+0

你可以嘗試從異步查詢轉換到同步查詢,然後嘗試它。 –

回答

1

您需要存儲字段變量(強引用)你RealmResults,否則它會被垃圾收集器消耗和境界不能夠再稱呼的改變監聽器。

RealmResults<MessageContentTable> messageContentTables; 

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

謝謝它爲我工作 –