无论何时用户登录,我都会尝试检查该用户是否与以前登录的用户相同。如果用户不同,我将尝试删除所有数据库实例,然后为新登录的用户创建实例在用户中。如果用户相同,则应删除用户数据
如何删除数据库实例?试过
Realm.getDefaultConfiguration()?.let {
Realm.getDefaultInstance().close()
Realm.deleteRealm(it)
}
但是出现以下异常
java.lang.IllegalStateException:不允许删除文件 与开放领域相关联。记住关闭所有实例 删除其文件之前的领域: /data/data/com.mypackage.name/files/filename.realm
如何关闭所有实例并删除它们?
答案 0 :(得分:1)
如果创建了相等数量的领域实例,则需要平均关闭领域实例。
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
.....//insert or update
realm.commitTransaction();
realm.close();
或者您可以在交易块中调用Realm.deleteAll()
。此方法调用无需关闭实例。但是,所有没有数据库模式的对象都将清除它。