排序查询
为了对查询进行排序,而不是使用 findAll()
,你应该使用 findAllSorted()
。
RealmResults<SomeObject> results = realm.where(SomeObject.class)
.findAllSorted("sortField", Sort.ASCENDING);
注意:
sort()
返回一个全新排序的 RealmResults,但对此 RealmResults 的更新将重置它。如果你使用 sort()
,你应该总是在你的 RealmChangeListener
中重新排序,从之前的 RealmResults
中删除 RealmChangeListener
并将其添加到返回的新 RealmResults
中。在由尚未加载的异步查询返回的 RealmResults
上使用 sort()
将失败。
findAllSorted()
将始终返回按字段排序的结果,即使它已更新。建议使用 findAllSorted()
。