如何打开封闭的会议室数据库

时间:2019-08-03 05:28:26

标签: android sqlite kotlin android-sqlite android-room

我正在尝试为我的数据库实现备份功能。为此,我必须先关闭数据库,然后上传文件。成功上传文件后,我无法重新打开数据库。

我正在使用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()之后,我想再次重新打开数据库。

提前谢谢!

0 个答案:

没有答案