Om een andere database-implementatie met Room te gebruiken, moet u een SupportSQLiteOpenHelper.Factory
zoeken (of maken) implementatie en lever het aan uw RoomDatabase.Builder
via openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
De eenvoudigste manier om dat te doen, is door de zelfstandige SQLite-bibliotheek van Requery te gebruiken. U zou RequerySQLiteOpenHelperFactory
. gebruiken als de implementatie van de SupportSQLiteOpenHelper.Factory
, en het zal Requery's verpakte kopie van SQLite gebruiken in plaats van het framework-exemplaar.
Als u om de een of andere reden de bibliotheek van Requery niet wilt gebruiken, moet u een equivalent vinden dat u bevalt, of u moet de SupportSQLite*
implementeren API's zelf. Ik heb dat twee keer gedaan voor SQLCipher voor Android, en het is lastig, maar het is zeker te doen.