1

如果您创建新的 RealmConfiguration 然后调用Realm.getInstance(configuration)

它将使用内部缓存。如果我删除领域文件,然后创建配置调用 Realm.getInstance(configuration) 的新实例将不会再次创建新的领域实例和领域文件(或重新加载它)。我需要强制 Realm 这样做并跳过或清理内部缓存。

4

1 回答 1

0

打电话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
于 2017-12-13T15:18:49.253 回答