【发布时间】:2018-03-11 17:37:11
【问题描述】:
我正在使用 Android RoomDatabase。
在应用程序启动时,我只需调用getOpenHelper().getWritableDatabase(); 即可触发数据库进行自身初始化。然后我在等待 DatabaseBuilder 的 onOpen 回调。
一旦我向我的一个实体添加另一个字段,这似乎不再起作用。 onOpen 只是没有被调用。 所以我将版本号从 1 更改为 2,以强制数据库自行重建。
@Database(entities = {Preference.class}, version = 2)
但这两者都不起作用。既没有调用 onCreate 也没有调用 onOpen。
唯一对我有用的是给 DatabaseBuilder 一个新的数据库名称。但这似乎不对。
所以我的问题是: 为什么在我更改数据库的版本号后没有调用 onCreate 并因此调用 onOpen?
【问题讨论】:
-
分享你的日志。
标签: android android-room android-database