有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Room数据库迁移冻结屏幕

下面的代码是数据库生成器代码和迁移代码。 当出现大数据和迁移时,屏幕会冻结,并出现一个黑屏,直到数据库建立。 是否有一种方法可以更好地处理此问题,并且更加用户友好(即显示加载对话框)

private fun buildDatabase(context: Context): MainDatabase {
        return Room.databaseBuilder(
            context.applicationContext,
            MainDatabase::class.java,
            databaseName
        )
            .fallbackToDestructiveMigration()
            .allowMainThreadQueries()
            .openHelperFactory(provideSupportFactory(context.applicationContext))
            .addMigrations(X)
            .build()
    }

    val X = object : Migration(2, 3) {
        override fun migrate(database: SupportSQLiteDatabase) {
               database.execSQL("SOME KIND OF SQL STATEMENT")
                }

调用数据库的函数是:

fun openDatabase(){ getInstance(requireContext()) }


共 (0) 个答案