Давайте не будем добавлять вещи, которые мы видим в других сообщениях без причины.
обавлении базы данных комнат предлагается использовать шаблон проектирования Singleton
Примечание. При создании экземпляра объекта AppDatabase следует придерживаться шаблона одноэлементного проектирования, поскольку каждый экземпляр RoomDatabase довольно дорогой и вам редко требуется доступ к нескольким экземплярам.
Итак, добавление Room Database, следуя примеру Google, написанному на Java, будет выглядеть так:
private var INSTANCE: AppDatabase? = null
fun getInstance(context: Context): AppDatabase? {
if (INSTANCE == null){
synchronized(AppDatabase::class){
INSTANCE = Room.databaseBuilder(context.applicationContext,
AppDatabase::class.java, "app_database")
.build()
}
}
return INSTANCE
}
Когда я звонюgetInstance
Компилятор предполагает, чтоgetInstance
может бытьnull
, Так что мой вопрос, есть ли случай, когдаgetInstance
бытьnull
и я должен проверить, если этоnull
, Если нет, то как мне создать экземплярAppDatabase
так чтоgetInstance
вернутьAppDatabase
неAppDatabase?
и это соответствует рекомендации документации?