OnCreateの理由 呼び出されないのは、データベースが最初に作成されたときに一度だけ呼び出され、データベースが存在する限り二度と呼び出されないためです。
アプリのデータを削除するか、アプリをアンインストールしてから再実行すると、 onCreateが表示されます。 その後、呼び出されます。
例えば
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();
}
アプリのデータを削除すると、次のようになります:-
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.