如果RealmObject包含字段latitude
和longitude
,则您拥有RealmList或RealmResult此类对象。您如何按距离排序,例如您当前的Location?
想到的想法是:
calculatedDistance
,遍历所有对象并进行设置。这种方法的问题在于,下次您致电copyToRealmOrUpdate(..)时,您将使用null覆盖此字段。Android上的任何人都找到了一个很好的解决方案吗?
答案 0 :(得分:2)
这样的事情确实需要Geo空间支持才能以任何有效的方式工作。
现在我认为最好的办法是将数据从Realm中复制出来并在工作线程中进行手动处理。
如果你在HandlerThread中实现它,你可以做这样的事情
RealmResults<City> results = realm.where(City.class).findAllAsync();
results.addChangeListener(new RealmChangeListener<Results<City>>() {
@Override
public void onChange(RealmResults<City> cities) {
List<City> standaloneCities = realm.copyFromRealm(cities);
doManualSorting(standaloneCities);
sendToUiThread(standaloneCities);
}
});