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()