2018-02-23

创建异步查询

RealmResultsresult=realm.where(User.class).equalTo("name","John").or().equalTo("name","Peter").findAllAsync();

请注意,这里的调用并不会阻塞,而是立即返回一个 RealmResults。这很类似于标准 Java 中 Future的概念。查询将会在后台线程中被执行,当其完成时,之前返回的 RealmResults 实例会被更新。

如果你希望当查询完成、RealmResults 被更新时获得通知,你可以注册一个 RealmChangeListener。这个监听器会在 RealmResults 被更新时被调用(通常是在事务被提交后)。

注册回调

privateRealmChangeListener callback=newRealmChangeListener>(){@OverridepublicvoidonChange(RealmResultsresults){

// called once the query complete and on every update

}

};

public void onStart(){

RealmResultsresult=realm.where(User.class).findAllAsync();

result.addChangeListener(callback);

}

请在退出 Activity 或者 Fragment 时移除监听器的注册以避免内存泄漏。

public void onStop(){

result.removeChangeListener(callback);// remove a particular listener// orresult.removeChangeListeners();// remove all registered listeners

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 目录 Getting StartedGetting HelpModelsRelationshipsWritesQu...
    Jafir阅读 8,370评论 2 4
  • 夏,浮华挂满枝头 那深深浅浅的绿呀,已然 不是希望 而是,沧桑在叶底酝酿 亚当和夏娃吃过的苹果 滚落,沾满泥浆 2...
    听雨Q晴阅读 179评论 1 3
  • 先做一个测试,假如被困沙漠之中,只有一张地图和一瓶水,二者只能选一种,你会选哪个? ...
    言闻阅读 259评论 0 2
  • 最近,有部电影《纯洁心灵:逐梦演艺圈》成功吸引了小编的注意,看过之后只能说,这是我第一次感受到豆瓣网友们的一致性,...
    麻婆电影阅读 699评论 0 0