领域 java 强制创建新领域实例
realm java force creating of new realm instance
如果您创建新的 RealmConfiguration 然后调用 Realm.getInstance(configuration)
它将使用内部缓存。如果我删除领域文件,然后创建新的配置调用 Realm.getInstance(configuration) 将不会再次创建新的领域实例和领域文件(或重新加载它)。我需要强制 Realm 这样做并跳过或清理内部缓存。
调用 realm.close();
似乎可以完成工作。但是您必须确保您只捕获一个本地 Realm 变量,否则一个 close() 调用将不起作用。
不好的例子:
public void importRealmFile(Context context) {
Realm realm = contexts.getImportContext().getRealm();
Storages importStorages = new Storages(contexts.getImportContext().getRealm());
realm.close(); // doesn't free the realm from the cache
好例子:
public void importRealmFile(Context context) {
Realm realm = contexts.getImportContext().getRealm();
Storages importStorages = new Storages(realm);
realm.close(); // works good
如果您创建新的 RealmConfiguration 然后调用 Realm.getInstance(configuration)
它将使用内部缓存。如果我删除领域文件,然后创建新的配置调用 Realm.getInstance(configuration) 将不会再次创建新的领域实例和领域文件(或重新加载它)。我需要强制 Realm 这样做并跳过或清理内部缓存。
调用 realm.close();
似乎可以完成工作。但是您必须确保您只捕获一个本地 Realm 变量,否则一个 close() 调用将不起作用。
不好的例子:
public void importRealmFile(Context context) {
Realm realm = contexts.getImportContext().getRealm();
Storages importStorages = new Storages(contexts.getImportContext().getRealm());
realm.close(); // doesn't free the realm from the cache
好例子:
public void importRealmFile(Context context) {
Realm realm = contexts.getImportContext().getRealm();
Storages importStorages = new Storages(realm);
realm.close(); // works good