Java 在Realm中使用静态getter安全吗?

Java 在Realm中使用静态getter安全吗?,java,android,static,realm,Java,Android,Static,Realm,这个问题是我上一个问题的续集: 使用像这样方便的静态getter安全吗 public static List<ItemRealm> getListByBar(String bar){ Realm realm = Realm.getDefaultInstance(); RealmResults<ItemRealm> rtn = realm.where(ItemRealm.class).equalTo("foo", bar).findAll(); //

这个问题是我上一个问题的续集:

使用像这样方便的静态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;
}
公共静态列表getListByBar(字符串栏){
Realm Realm=Realm.getDefaultInstance();
RealmResults rtn=realm.where(ItemRealm.class).equalTo(“foo”,bar).findAll();
//realm.close();
返回rtn;
}
根据我在上一篇文章中的评论,似乎我应该关闭这个领域,但如果我这样做,我的物品将不再可用

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


推荐的方法是什么?

只有在不使用此方法管理领域生命周期的情况下,才是安全的

public static List<ItemRealm> getListByBar(Realm realm, String bar) {
    //Realm realm = Realm.getDefaultInstance();
    return realm.where(ItemRealm.class).equalTo("foo", bar).findAll();
    //realm.close();
}
公共静态列表getListByBar(领域、字符串栏){
//Realm Realm=Realm.getDefaultInstance();
返回realm.where(ItemRealm.class).equalTo(“foo”,bar).findAll();
//realm.close();
}

虽然我想知道如果您将其公开为
列表
,因此无法为此用途添加
RealmChangeListener

,您打算如何保持它的同步,但我并不真正需要RealmChangeListeners。但是这不是每个
findAll()
使用的问题吗?我不确定我是否理解这个问题,但是如果结果得到更新,你似乎无法通过这种方式得到通知。我的意思是这是
findAll()
返回列表的问题,而不是委托静态方法的问题,不是吗?如果结果得到更新,你似乎无法通过这种方式得到通知。请查收