Я думаю, что вы должны использовать фабрику с единичным экземпляром внутри вашей базы данных. Таким образом, вы можете получить доступ к вашей БД везде, не создавая никаких дополнительных экземпляров БД.
Это мой код с использованием Kotlin, но я думаю, что идеи совпадают в Kotlin и Java
@Database(entities = [Address::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun addressDao(): AddressDao
companion object{
private var INSTANCE: AppDatabase? = null
fun getInstance(context: Context) = INSTANCE ?:
Room.databaseBuilder(context, AppDatabase::class.java, "MyDatabaseName")
// .allowMainThreadQueries()
.build().also { INSTANCE = it }
}
}