android - 如何使用 Room 库中的 createFromAsset 函数?

标签 android android-room android-room-prepackageddatabase

房间持久性库版本 2.2.0-alpha01 添加了使用预打包数据库的能力。

https://developer.android.com/jetpack/androidx/releases/room

有人可以提供有关如何初始化房间数据库构建器的示例吗?

最佳答案

我正在使用这个:

@Database(entities = [Users::class], version = 1, exportSchema = false)
abstract class AppDataBase : RoomDatabase() {

    companion object {
        private const val DATABASE_NAME = "you_name"
        private const val DATABASE_DIR = "database/you_name.db" // Asset/database/you_name.db

        fun getInstance(context: Context): AppDataBase {
            return Room
                    .databaseBuilder(context, AppDataBase::class.java, DATABASE_NAME)
                    .createFromAsset(DATABASE_DIR)
                    .build()
        }
    }

    abstract fun getUsers(): UsersDao
}

有关更多信息,请参阅 here

If you need update DB from Asset!
 1. You need level up version Database in settings Room!
 2. Add .fallbackToDestructiveMigration() method in getInstance
 3. And need level up version in you db file;

关于android - 如何使用 Room 库中的 createFromAsset 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57236333/

相关文章:

android - 单击按钮时如何更改 ListView 中 TextView 的文本?

java - 如何将 LocalBroadcast 从 BroadcastReceiver 发送到正在运行的服务?

android - 位置数据源不加载所有数据

java - 当我在 RoomDatabase 中使用 createFromAsset 时,为什么数据库为空。 List<> 的大小为 0,但预填充的数据库有 8 个项目

android - Room 库的 createFromAsset 和 fallbackToDestructiveMigration 方法 - 不存在数据

android - Gradle 无法解析 otto 库

android - 列类型 bool 值的房间数据库迁移问题

android - Android Room 数据库可以存储多少 Kbs/Mbs/Gbs 数据?

android - 具有复杂Json结构的房间

java - 如何在房间数据库中预填充数据