我希望在用户按下注销按钮时清除整个数据库,并在其他用户登录时加载新数据。我尝试了很多解决方案,如
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.
}
但这些代码都不起作用。 提前谢谢。
答案 0 :(得分:30)
当您调用Realm.deleteRealm()
时,您必须确保所有Realm实例都已关闭,否则将抛出异常而不删除任何内容。通过调用此方法,将删除所有Realm文件,这意味着所有对象&架构已经消失了。对于任何一般情况,捕获所有异常都是不好的做法。
或者您可以在事务块中调用Realm.delelteAll()
。这不需要关闭所有Realm实例。它将删除Realm中的所有对象而不清除模式。再说一遍,不要抓住所有例外。
答案 1 :(得分:0)
如果您确定没有任何其他要保存的数据库,则还可以删除所有其他数据。你可以按照这个答案 Clear Application's Data Programmatically