美文网首页
2018-02-23

2018-02-23

作者: codeCooler | 来源:发表于2018-02-23 10:53 被阅读4次

    创建异步查询

    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

    }

    相关文章

      网友评论

          本文标题:2018-02-23

          本文链接:https://www.haomeiwen.com/subject/fkotxftx.html