当其他用户登录Android时如何从领域删除用户数据

时间:2018-12-12 05:44:24

标签: android realm

无论何时用户登录,我都会尝试检查该用户是否与以前登录的用户相同。如果用户不同,我将尝试删除所有数据库实例,然后为新登录的用户创建实例在用户中。如果用户相同,则应删除用户数据

如何删除数据库实例?试过

  Realm.getDefaultConfiguration()?.let {
            Realm.getDefaultInstance().close()
            Realm.deleteRealm(it)
          }

但是出现以下异常

  

java.lang.IllegalStateException:不允许删除文件   与开放领域相关联。记住关闭所有实例   删除其文件之前的领域:   /data/data/com.mypackage.name/files/filename.realm

如何关闭所有实例并删除它们?

1 个答案:

答案 0 :(得分:1)

如果创建了相等数量的领域实例,则需要平均关闭领域实例。

Realm realm  = Realm.getDefaultInstance();
realm.beginTransaction();
.....//insert or update
realm.commitTransaction();
realm.close();

或者您可以在交易块中调用Realm.deleteAll()。此方法调用无需关闭实例。但是,所有没有数据库模式的对象都将清除它。

参考:How to Clear Database in Realm in Android