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