繁体   English   中英

领域:如果应用程序及其库之一使用领域并设置(均)defaultConfiguration,则defaultInstance是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM