我正在尝试为我的数据库实现备份功能。为此,我必须先关闭数据库,然后上传文件。成功上传文件后,我无法重新打开数据库。
我正在使用Room库。
这是我的数据库代码
@Database(
entities = [Activity::class, Entry::class, EntryActivityJoin::class],
version = 1,
exportSchema = false
)
@TypeConverters(LocalDateConverter::class)
abstract class MonkDatabase : RoomDatabase() {
abstract fun activityDao(): ActivityDao
abstract fun entryDao(): EntryDao
abstract fun entryActivityDao(): EntryActivityDao
companion object {
@Volatile
private var instance: MonkDatabase? = null
private val LOCK = Any()
operator fun invoke(context: Context) = instance ?: synchronized(LOCK) {
instance ?: buildDatabase(context).also { instance = it }
}
private fun buildDatabase(context: Context) =
Room.databaseBuilder(
context.applicationContext,
MonkDatabase::class.java, "monkDatabase.db"
).build()
}
}
因此,从存储库中调用database.close()之后,我想再次重新打开数据库。
提前谢谢!