Alasan mengapa OnCreate tidak dipanggil karena hanya dipanggil sekali saat database pertama kali dibuat dan tidak akan dipanggil lagi selama database ada.
Jika Anda menghapus data Aplikasi atau mencopot pemasangan Aplikasi lalu menjalankannya kembali, Anda akan melihat bahwa onCreate kemudian dipanggil.
misalnya
private void BuildDatabase() {
RoomDatabase.Builder roombuilder = Room.databaseBuilder(this, Database.class,"mydb");
roombuilder.addCallback(new RoomDatabase.Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
super.onCreate(db);
Log.d("ONCREATE","Database has been created.");
}
@Override
public void onOpen(@NonNull SupportSQLiteDatabase db) {
super.onOpen(db);
Log.d("ONOPEN","Database has been opened.");
}
});
mRoomDB = (Database) roombuilder.build();
}
Setelah menghapus hasil data Aplikasi di :-
2018-12-20 06:36:23.045 2271-2287/so53839431.so53839431roomrelationship D/ONCREATE: Database has been created.
2018-12-20 06:36:23.055 2271-2287/so53839431.so53839431roomrelationship D/ONOPEN: Database has been opened.