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