У меня есть небольшая база данных с Android Room. Я хочу предварительно заполнить таблицы некоторыми данными, но не могу вызвать триггер с onCreate
или onOpen
методами.
У меня есть база данных с одноэлементным шаблоном, как это:
public class DatabaseSoundsInitializer{
...
private static DatabaseSounds databaseObject;
public static DatabaseSounds getDatabaseSoundsInitializer(Context context, Class klass, String name){
if(databaseObject == null){
Log.d(TAG, "Debug: Creating the database");
databaseObject = (DatabaseSounds) Room.databaseBuilder(context, klass, name).addCallback(rdc).build();
}
return databaseObject;
}
static RoomDatabase.Callback rdc = new RoomDatabase.Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
super.onCreate(db);
Log.d(TAG, "Debug: onCreate");
}
@Override
public void onOpen(@NonNull SupportSQLiteDatabase db) {
super.onOpen(db);
Log.d(TAG, "Debug: onOpen");
}
};
...
}
Я называю это из своей основной деятельности следующим образом:
DatabaseSounds db = DatabaseSoundsInitializer.getDatabaseSoundsInitializer(getApplicationContext(), DatabaseSounds.class, Utils.DATABASE_NAME);
Здесь моя база данных Класс:
public abstract class DatabaseSounds extends RoomDatabase{}
Я вижу журнал с Debug: создание базы данных, но не других. Я делаю это неправильно?