非同步查詢
每個同步查詢方法(例如 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);