领域,来自相同配置的多个实例

时间:2016-04-19 10:27:20

标签: android realm

为了处理所有领域转换,我创建了一个帮助程序'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属性并为每个方法创建局部变量的原因是:

  • 可以使用配置来生成多个领域实例吗?
  • 如果允许的话,这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

  

可以使用配置来生成多个领域实例吗?

Christian Melchior也自己做here

  

如果允许,这是最好的方法吗?

这是一个棘手的问题。 "最佳"取决于具体情况和背景。如果你只使用1个RealmConfiguration(你没有提到你使用多个,所以我假设你使用1),我建议你在Application类中定义它(和文档一样)并使用Realm.getDefaultInstance()来引用它