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