【发布时间】:2015-07-01 13:51:00
【问题描述】:
现在 Realm.deleteRealmFile() 已被弃用,在 Android 应用程序中删除领域文件并实例化新文件的最佳方法是什么?
我尝试设置新配置,但遇到一堆领域迁移错误?这是为什么呢?
【问题讨论】:
标签: android file migration realm
现在 Realm.deleteRealmFile() 已被弃用,在 Android 应用程序中删除领域文件并实例化新文件的最佳方法是什么?
我尝试设置新配置,但遇到一堆领域迁移错误?这是为什么呢?
【问题讨论】:
标签: android file migration realm
根据 API 文档,您现在应该改用 DeleteRealm(RealmConfiguration),其中 RealmConfiguration 指定要删除的领域文件等。您可以在此处找到 API 文档:https://realm.io/docs/java/latest/api/
【讨论】:
如果你陷入 MigrationNeededException 循环,试试这个,它会删除整个文件夹并重建 Realm。
private void rebuildDatabase() {
RealmConfiguration realmConfig = new RealmConfiguration.Builder(getApplicationContext())
.name(getString(R.string.realm_file_name))
.deleteRealmIfMigrationNeeded()
.build();
Realm.deleteRealm(realmConfig);
File dir = realmConfig.getRealmFolder();
if (dir.isDirectory())
{
String[] children = dir.list();
for (int i = 0; i < children.length; i++)
{
new File(dir, children[i]).delete();
}
}
Realm.setDefaultConfiguration(realmConfig);
Realm newRealm = Realm.getInstance(this);
newRealm.close();
}
【讨论】: