java - Realm:如果应用程序及其库之一使用 Realm 并设置(两者)defaultConfiguration,那么 defaultInstance 是什么?

标签 java android realm

假设我们有一个使用 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 的相同 Realm 名称问题的情况类似。也许您应该考虑让 lib 用户有机会设置 Realm 名称或将域添加到 lib 的 Realm 以避免冲突?

关于java - Realm:如果应用程序及其库之一使用 Realm 并设置(两者)defaultConfiguration,那么 defaultInstance 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35182027/

相关文章:

java - 如何使用区域设置获取特定国家/地区的货币符号?

java.lang.ArrayIndexOutOfBoundsException : length=27; index=-1 异常

swift - UIDatePicker 仅显示特定日期

swift - Swift 中的对象 : Value of 'Object' has no member

realm - 如何让keycloak导出 Realm 用户然后退出

java - HTTP 响应无法识别的文本

java - Spring Boot中如何处理请求中的空值?

Selenium 中的java反射

android - 为什么 Viewgroup 的 getHeight() 不会改变

android - Eclipse Android 布局设计器 - 添加用于预览的新屏幕尺寸