假设我们有一个使用 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/