非同步查詢

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