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