For at bruge en anden databaseimplementering med Room, skal du finde (eller oprette) en SupportSQLiteOpenHelper.Factory
implementering og lever den til din RoomDatabase.Builder
via openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
Den enkleste måde at gøre det på er at bruge Requerys selvstændige SQLite-bibliotek. Du ville bruge RequerySQLiteOpenHelperFactory
som implementering af SupportSQLiteOpenHelper.Factory
, og det vil bruge Requery's pakkede kopi af SQLite i stedet for framework en.
Hvis du af en eller anden grund ikke ønsker at bruge Requerys bibliotek, skal du finde en tilsvarende, som du kan lide, eller du skal implementere SupportSQLite*
API'er selv. Jeg gjorde det to gange for SQLCipher til Android, og det er en smerte, men det kan bestemt lade sig gøre.