1

早上好,

当数据库发生更改时,我将尝试清除我的首选项文件,因为有一系列数据使我无法将新数据存储在数据库中。

在 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();
                    }
                })

但它不起作用

4

0 回答 0