dimanche 4 novembre 2018

Can anytime AppDatabase in Android Room be null?

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