2017-04-04 47 views
0

这个问题是我之前的一个续作:Is it safe to use ActiveRecord pattern with Realm?在Realm中使用静态getter是否安全?

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

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; 
} 

通过我以前的文章的评论,看来我应该关闭的境界,但如果我做我的项目将不再可用。

对于这是我经常在我的代码中做出的请求,我想要一个委托方法。

这是什么建议?

回答

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

+0

对于此用途,我不真的需要RealmChangeListeners。但是这对每个findAll()都不是一个问题? –

+0

我不确定我是否理解这个问题,但如果结果得到更新,您似乎无法通过这种方式得到通知。 – EpicPandaForce

+0

我的意思是这是'findAll()'返回一个列表的问题,而不是委托静态方法的问题,不是吗? –

相关问题