我有一个RealmObject对话,其中包含一个RealmList消息(我的消息不知道对话)。我想以异步方式查询和排序它们 这是我糟糕的尝试,但我发布它是为了让你更好地了解我想做的事情:
return realm.where(Conversation.class)
.equalTo("id",conversationId)
.findFirstAsync()
.getMessages().sort("receivedDate", Sort.DESCENDING)
.asFlowable();
它没有工作,抛出了这个异常:
java.lang.IllegalStateException:挂起的查询尚未执行
目前我不知道如何异步查询它们并在UI线程中取回它们而不更改我的架构。
修改
我的架构非常简单:
public class Message extends RealmObject{
private String content;
private Date receivedDate;
}
public class Conversation extends RealmObject{
private String id;
private RealmList<Message> messages;
}
答案 0 :(得分:1)
没有看到你的架构所以我不知道链接对象是否可行,我想我会尝试以下
{'I': 2, 'b': 2, 't': 3, 'f': 1}
如果可以删除该对象,那么您可能希望切换到findAll *或同时检查isValid。
答案 1 :(得分:0)
您可以使用LiveDataReactiveStreams
LiveDataReactiveStreams.fromPublisher(realm.where(Conversation.class)
.equalTo("id",conversationId)
.findFirstAsync()
.filter(RealmResults::isLoaded)
.getMessages().sort("receivedDate", Sort.DESCENDING)
.asFlowable()))
.getValue();