RealmResult没有自动更新

时间:2017-07-22 14:36:27

标签: android multithreading realm auto-update android-looper

我有一个RealmResults对象,我正在更新,但问题是它没有实时更新。

...代码

Thread syncMessages = new Thread(() -> {
        final Realm realm = Realm.getDefaultInstance();
        ChatManager chatManager = new ChatManager(realm, context);
            resultMessages = chatManager.sendPendingMessages(user.getId_user());
        countDownLatch.countDown();
        realm.close();
    });

 try {
        syncMessages.start();
        countDownLatch.await();
    } catch (Exception e) {
        e.printStackTrace();
    }

sendPendingMessages 是包含realmresult对象的函数。

RealmResults<ChatMessage> messages = chatRepository.pendingSyncMessages();
//it fetches all chat messages that are not synced.

我创建了一个服务来与服务器同步数据,因为它在不同的线程上,我需要打开另一个领域实例来本地更新数据,这样它就知道数据已经同步

服务的OnSuccessCall

Realm innerRealm = Realm.getDefaultInstance();
ChatRepository innerchatRepository = new ChatRepository(innerRealm);                                        
innerchatRepository.updateSyncForChatMessage();
RealmResults<ChatMessage> messages_middle = innerchatRepository.pendingSyncMessages();

在服务成功的过程中,realmresults对象正确反映了更改,因此 messages_middle 的大小小于消息,因为数据已同步,但当我检查大小时服务在同步数据后的消息,它仍显示原始大小和原始数据。

0 个答案:

没有答案