早上好,
我打算在数据库发生变化时尝试清除我的首选项文件,因为有一系列数据使我无法将新数据存储在数据库中。
在MyApplication中,我有:
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(getApplicationContext())
.name("PayThunderHologram.realm")
.schemaVersion(5)
.migration(new MyMigration())
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(realmConfiguration);
在MyMigration我有:
public class MyMigration extends AppCompatActivity implements RealmMigration{
public static SharedPreferences editor;
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
editor = getSharedPreferences("Configuración", MODE_PRIVATE);
editor.edit().clear().commit();
}
}
但是当我对数据库进行更改时,我无法删除首选项文件,在应用程序中出错并关闭它。
到目前为止,我一直在做的是继续提供所有证据,它已经清楚了应用程序数据并且它有效但我希望自动化我的方式。
修改
在我有以下内容之前,只删除一些字段首选项文件:
.migration(new RealmMigration() {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
editor.remove("hologram_id");
editor.remove("hologram_ver");
editor.commit();
}
})
但它不起作用