尝试删除 Android Realm 文件,但出现异常

sty*_*972 3 android realm

我正在尝试删除 Realm 文件以在用户注销时清除缓存。

这是我正在尝试的:

Realm realm = Realm.getInstance(activity);

realm.close();
RealmConfiguration config = realm.getConfiguration();

Realm.deleteRealm(config);
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

11-05 23:56:00.902 27521-27521/com.my.app E/AndroidRuntime: java.lang.IllegalStateException: It's not allowed to delete the file associated with an open Realm. Remember to close() all the instances of the Realm before deleting its file.
11-05 23:56:00.902 27521-27521/com.my.app E/AndroidRuntime:     at io.realm.Realm.deleteRealm(Realm.java:1726)
Run Code Online (Sandbox Code Playgroud)

我显然正在关闭某些东西,但它说更多是开放的?我如何关闭所有领域,以便我可以吹掉所有东西并重新开始?

Mat*_*ini 6

引用Realm 文档

Realm 实现 Closeable 以处理本机内存释放和文件描述符,因此请务必记住在使用完 Realm 实例后关闭它们。

Realm 实例是引用计数的,这意味着如果你在一个线程中调用 getInstance() 两次,你也必须调用 close() 两次。

可能您缺少调用close()您创建的每个 Realm 实例。

检查您的代码以查找getInstance()未与close().