Android的房间+ Kotlin模式
Android的房间文件说,我们应该按照单例设计模式时,实例化一个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()