SQLite
 sql >> база данни >  >> RDS >> SQLite

onCreate() на RoomDatabase.Callback() не беше извикан след успешно извикване на .build()

Причината за 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Библиотеката на стаята може ли да копира db от папката с активи?

  2. Експортирайте база данни SQLite в XML файл

  3. Открит е теч на база данни на SQLite

  4. Как да извлечем изображение от база данни на SQLite?

  5. защо не успявам да създам тази таблица на android SQLite?