While adding Room Database, it is suggested to use Singleton Design Pattern
Note: You should follow the singleton design pattern when instantiating an AppDatabase object, as each RoomDatabase instance is fairly expensive, and you rarely need access to multiple instances.
So, adding Room Database, following Google example which is written in Java, in will be as below
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
}
When I call getInstance
, compiler suggest that getInstance
can be null
. So my question is there any case that getInstance
be null
and do I have to check if it's null
. If not, then how should I instantiate AppDatabase
so that it fits documentation recommendation?
Aucun commentaire:
Enregistrer un commentaire