0

我有一个正在更新的 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的大小小于消息,因为数据已同步,但是当我在同步数据后检查服务外部消息的大小时,它仍然显示原始大小和原始数据。

4

0 回答 0