【发布时间】:2020-06-04 08:33:27
【问题描述】:
我有一个现有的 Android 项目,我在其中创建了一个新的 Android Library (offlineservicelibrary)(File/new/New module/Android library)。在这个库中,我想创建一个房间数据库。
我关注 https://developer.android.com/training/data-storage/room 并为我的数据库创建了 Entity (OfflineData) 和 DAO(OfflineDataDao) 设置,但我对在哪里设置 AppDatabase 以及如何将其链接到库有点困惑。
@Database(entities = arrayOf(OfflineData::class), version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun getOfflineDataDao(): OfflineDataDao
}
val db = Room.databaseBuilder(
applicationContext,
AppDatabase::class.java, "database-name"
).build()
在我的库中,我没有任何扩展应用程序类的类。我是否应该创建一个扩展 Application 类的新类并在那里执行上述步骤。
请建议我应该怎么做才能使用 Room 数据库设置图书馆
这是我的图书馆项目结构
【问题讨论】:
-
你可以在库模型中创建单例,当其他模块需要查询数据库时,如果需要,你应该传递上下文来初始化你的数据库。
-
我不应该创建一个扩展应用程序的类吗?
-
基本上还可以,但是如果另一个模块需要上下文怎么办?所以你不能制作更多的自定义应用程序吗?
-
你能举个例子说明如何做到这一点
标签: android android-room android-library