Попытка заполнить базу данных с помощью RoomDatabase.Callback не работает - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь заполнить базу данных при ее создании с помощью RoomDatabase.Callback для вставки данных, но когда я открываю БД, данные не вставляются.

Вот мой DatabaseClass

@Database(entities = {StationSQLiteEntity.class}, version = 1)
public abstract class StationDatabase extends RoomDatabase {

private static StationDatabase instance;

public abstract StationSQLiteDAO stationDAO();

public static synchronized StationDatabase getInstance(Context context){
    if(instance == null){
        instance = Room.databaseBuilder(context.getApplicationContext(), StationDatabase.class, "station_database")
                .fallbackToDestructiveMigration()
                .addCallback(roomCallback)
                .build();
    }
    return instance;
}

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

private static class LoadStationsAT extends AsyncTask<Void, Void, Void>{

    private StationSQLiteDAO stationDAO;

    public LoadStationsAT(StationDatabase db) {
        this.stationDAO = db.stationDAO();
    }

    @Override
    protected Void doInBackground(Void... voids) {
        StationSQLiteEntity station = new StationSQLiteEntity(123, "Madrid", "ES", "a", "b", 40.0, -3.75, 0);
        station.setId(1);
        stationDAO.createStation(station);

        return null;
    }
}

}

Кажется, что он работает правильно, но когда я открываю отладку БД в табличной станции, нет данных

...