试图删除Android Realm文件,但获得异常

时间:2015-11-06 06:00:57

标签: android realm

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

以下是我的尝试:

Realm realm = Realm.getInstance(activity);

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

Realm.deleteRealm(config);

我得到了这个例外:

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)
我显然已经关闭了一些东西,但它的说法更开放了吗?如何关闭所有领域,这样我就可以把所有东西都吹走,重新开始?

1 个答案:

答案 0 :(得分:3)

引自Realm documentation

  

Realm实现Closeable以处理本机内存   解除分配和文件描述符因此记住这一点非常重要   完成后关闭你的Realm实例。

     

Realm实例是引用计数,这意味着如果你打电话   getIstance()在一个线程中两次,你还必须调用close()   两次。

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

检查您的代码,找出getInstance()未与close()匹配的位置。