在Android应用更新后保持领域数据库

时间:2017-03-01 09:09:28

标签: android realm

我有一个存储在/ data / ..文件夹中的领域数据库。当我通过android studio重新安装相同的应用程序版本时,该过程会保留数据。但是,如果我从较低的应用程序版本更新到更高版本,它会删除它。在应用更新后,可能是什么原因以及如何保留此数据库?迁移代码:

public class FRGMigration implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
    if (oldVersion == 3) {
        realm.getSchema().create("Settings")
                .addField("id", Integer.class, FieldAttribute.PRIMARY_KEY)
                .addField("userName", String.class)
                .addField("cachePolitics", String.class)
                .addField("soundUri", String.class)
                .addField("cacheDir", String.class)
                .addField("timeStamp", Long.class);

        realm.getSchema().get("NewsItem")
                .addField("teaser", String.class);
        oldVersion++;
        SettingsDB settingsDB = DependencyProvider.getInstance().provideSettingsDB();
        Settings settings = settingsDB.getSettings();
        settings.setTimeStamp(0L);
        settingsDB.updateSettings(settings);
    }
}

@Override
public int hashCode() {
    return 37;
}

@Override
public boolean equals(Object obj) {
    return obj instanceof FRGMigration;
}

}

1 个答案:

答案 0 :(得分:0)

从API 23+开始,android OS会自动创建数据备份。 如果您不想创建备份,请将此行代码添加到AndroidManifest.xml

<application ...
    android:allowBackup="false">
</app>

您可以在this链接上阅读更多内容。