android - 如何在 Android 中清除 Realm 中的数据库

标签 android realm

我想在用户按下注销按钮时清除整个数据库并在另一个用户登录时加载新数据。我尝试了很多解决方案,例如

try {
        Realm.deleteRealm(realmConfiguration);   
    } catch (Exception ex){
        throw ex;
    }

还有

 try {
        Realm.deleteRealmFile(getActivity());
        //Realm file has been deleted.
    } catch (Exception ex){
        ex.printStackTrace();
        //No Realm file to remove.
    }

但是这两个代码都不起作用。 提前致谢。

最佳答案

当您调用 Realm.deleteRealm() 时,您必须确保所有 Realm 实例都已关闭,否则将引发异常而不删除任何内容。通过调用此方法,所有 Realm 文件都被删除,这意味着所有对象和模式都消失了。对于任何一般情况,捕获所有异常都是不好的做法。

或者您可以调用Realm.delelteAll()在一个事务 block 中。这不需要关闭所有 Realm 实例。它只会删除 Realm 中的所有对象而不清除模式。同样,不要捕获所有异常。

关于android - 如何在 Android 中清除 Realm 中的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37648071/

相关文章:

java - 如何在父自定义对象数组列表中获取自定义对象子列表中的单个项目位置?

java - android中两个日期之间的差异

android - 如何从 kotlin 中的 ArrayList 中删除所有项目

swift - swift 从通用对象中获取 element.type

ios - TableView 不显示来自 Realm 的数据

swift - Swift 3.1 的 Realm 问题

ios - Realm 迁移 : Why in documentation it is recommended to call the migration block each time without checking the schema version before?

java - 我可以使用针对两个 Activity 观察到的 View 模型吗?

android - android底部栏下方的空白空间

ios - 如何正确地对 Realm 迁移进行单元测试