为了处理所有领域转换,我创建了一个帮助程序'manager'类,它具有以下属性:
Realm realm;
每个方法都有一个从配置中获取领域实例的函数。
RealmConfiguration realmConfig = new RealmConfiguration.Builder(context).build();
realm = Realm.getInstance(realmConfig);
Realm Builder的位置:
public Builder(Context context) {
if (context == null) {
throw new IllegalArgumentException("A non-null Context must be provided");
}
initializeBuilder(context.getFilesDir());
}
通过这种方式存在并发问题,例如'此Realm实例已被关闭,使其无法使用'。 我编写了一个写入/读取大量数据的测试,但我无法重现上述错误,这种情况很少发生。
阻止我删除realm属性并为每个方法创建局部变量的原因是:
答案 0 :(得分:1)
可以使用配置来生成多个领域实例吗?
是
Christian Melchior也自己做here
如果允许,这是最好的方法吗?
这是一个棘手的问题。 "最佳"取决于具体情况和背景。如果你只使用1个RealmConfiguration(你没有提到你使用多个,所以我假设你使用1),我建议你在Application类中定义它(和文档一样)并使用Realm.getDefaultInstance()
来引用它