使用Realm的静态getter是否安全?

时间:2017-04-04 07:00:31

标签: java android static realm

这个问题是我之前的续集:Is it safe to use ActiveRecord pattern with Realm?

使用像这样的方便的静态吸气剂是否安全?

public static List<ItemRealm> getListByBar(String bar){
    Realm realm = Realm.getDefaultInstance();
    RealmResults<ItemRealm> rtn = realm.where(ItemRealm.class).equalTo("foo", bar).findAll();
    //realm.close();
    return rtn;
}

根据我在上一篇文章中的评论,似乎我应该关闭这个领域,但是如果我这样做我的项目就不再可用了。

因为这是我在代码中经常发出的请求,我希望有一个委托方法。

这样做的推荐方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您的Realm生命周期是在此方法之外进行管理,那么它是唯一安全的。

public static List<ItemRealm> getListByBar(Realm realm, String bar) {
    //Realm realm = Realm.getDefaultInstance();
    return realm.where(ItemRealm.class).equalTo("foo", bar).findAll();
    //realm.close();
}

虽然我想知道如果你将它作为List<>公开,你打算如何保持同步,因此无法添加RealmChangeListener