Để sử dụng triển khai cơ sở dữ liệu khác với Room, bạn cần tìm (hoặc tạo) một SupportSQLiteOpenHelper.Factory
triển khai và cung cấp nó cho RoomDatabase.Builder
của bạn qua openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
Cách đơn giản nhất để làm điều đó là sử dụng thư viện SQLite độc lập của Request. Bạn sẽ sử dụng RequerySQLiteOpenHelperFactory
như việc triển khai SupportSQLiteOpenHelper.Factory
và nó sẽ sử dụng bản sao SQLite được đóng gói của Yêu cầu thay vì bản khung.
Nếu vì lý do nào đó, bạn không muốn sử dụng thư viện của Request, thì bạn cần phải tìm một thư viện tương đương mà bạn thích hoặc bạn sẽ cần triển khai SupportSQLite*
API của chính bạn. Tôi đã làm điều đó hai lần cho SQLCipher dành cho Android và đó là một điều khó khăn, nhưng chắc chắn là có thể làm được.