![](/img/trans.png)
[英]Realm: Use one or multiple realms in an app (and one or multiple schemas)
[英]Realm: what is the defaultInstance if the app and one of it's libraries use Realm and set (both) the defaultConfiguration?
假设我们有一个使用Realm的应用程序,并且其中一个库也依赖该应用程序使用Realm(因为它是自己使用的)。
Realm如何处理应用程序和库(均设置)Realm defaultConfiguration的情况? defaultConfiguration是静态变量,其值对于应用程序和库是相同的。
另外,如果用户选择了他从未使用过的数据库名称,并且该库也具有相同的数据库名称,那么Realm将如何处理(它们,应用程序和库都具有相同的Context.getLibFiles)?
如果库和应用程序都使用defaultConfiguration
,则取决于调用getDefaultConfiguration()
。 您可以从源代码中看到:
public static void setDefaultConfiguration(RealmConfiguration configuration) {
if (configuration == null) {
throw new IllegalArgumentException("A non-null RealmConfiguration must be provided");
}
defaultConfiguration = configuration;
}
它没有任何保护和设置时进行检查,因为它被设计为在用户调用任何getDefaultRealm()
(或切换默认Realm)之前被调用。
IMO,lib根本不应该设置默认配置。 默认配置应由应用本身控制。
对于lib和app相同的领域名称问题,情况类似。 也许您应该考虑让lib用户有机会设置Realm名称或将域添加到lib的Realm中以避免冲突?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.