Android Room文档说我们应该在实例化AppDatabase对象时遵循单例设计模式 .
我正在考虑它,我想知道它是否建议将AppDatabase类放在我的Application类中 . 或者,如果我可以使用Kotlin单身人士 .
假设我有一个名为CarroDAO的DAO和一个RoomDatabase类CarrosDatabase .
可以使用Kotlin对象/单例创建DatabaseManager类吗?
object DatabaseManager {
private var dbInstance: CarrosDatabase
init {
val appContext = MyApplication.getInstance().applicationContext
dbInstance = Room.databaseBuilder(
appContext,
CarrosDatabase::class.java,
"mybd.sqlite")
.build()
}
fun getCarroDAO(): CarroDAO {
return dbInstance.carroDAO()
}
}
所以我可以这样得到DAO类:
val dao = DatabaseManager.getCarroDAO()
1 回答
根据Android文档,我们可以使用单例设计模式创建数据库实例,如下所示创建一个房间数据库实体
创建DAO类
使用单例模式创建数据库
您可以通过以下代码获取数据库实例