异步查询
每个同步查询方法(例如 findAll()
或 findAllSorted()
)都有一个异步对应方(findAllAsync()
/ findAllSortedAsync()
)。
异步查询将 RealmResults
的评估卸载到另一个线程。为了在当前线程上接收这些结果,当前线程必须是一个 looper 线程(读取:异步查询通常只能在 UI 线程上工作)。
RealmChangeListener<RealmResults<SomeObject>> realmChangeListener; // field variable
realmChangeListener = new RealmChangeListener<RealmResults<SomeObject>>() {
@Override
public void onChange(RealmResults<SomeObject> element) {
// asyncResults are now loaded
adapter.updateData(element);
}
};
RealmResults<SomeObject> asyncResults = realm.where(SomeObject.class).findAllAsync();
asyncResults.addChangeListener(realmChangeListener);