Room .addCallback () не работает при изменении версии базы данных - PullRequest
0 голосов
/ 26 апреля 2020

Я использую базу данных комнат в своем приложении, и я только что внес некоторые изменения и увеличил версию базы данных. и я использую .fallbackToDestructiveMigration() при инициализации базы данных, так как больше не хочу сохранять старые данные, но проблема в том, что используемый мной метод callBack перестал работать, и поэтому база данных не заполняется предварительно , что может быть причиной этой проблемы?

это метод инициализации для базы данных:

 instance = Room.databaseBuilder(context.getApplicationContext(),
                    RamadanCalenderDatabase.class, "calender_database")
                    .fallbackToDestructiveMigration()
                    .addCallback(roomCallback)
                    .build();

и это метод callBack:

private static RoomDatabase.Callback roomCallback = new RoomDatabase.Callback() {
       @Override
       public void onCreate(@NonNull SupportSQLiteDatabase db) {
           super.onCreate(db);
           new PopulateAsyncTask(instance).execute();
       }
};

private static class PopulateAsyncTask extends AsyncTask<Void, Void, Void> {
        private UserDao userDao;

PopulateAsyncTask(RamadanCalenderDatabase db) {
            this.userDao = db.userDao();
        }

@Override
        protected Void doInBackground(Void... voids) {
            userDao.insert(new UserInfo(33.893061, 35.481451, "SEET", true, 3, 0));
            return null;
        }
}
...