我尝试了许多方法可以做到这一点,每个没有提供。
首先,我尝试使用'addMigrations'方法向Room中添加Migration实现,但发现它只在数据库升级期间运行,但不在创建时运行。
然后,我尝试使用'openHelperFactory'方法将SQLiteOpenHelper实现传递给Room。但是为了避开Room的包级访问修饰符而创建了一堆类之后,我放弃了这一努力。我也尝试了继承Room的FrameworkSQLiteOpenHelperFactory,但是,它的构造函数的包级访问修饰符不支持这一点。
最后,我创建了一个IntentService来填充数据,并从我的Application子类的onCreate方法中调用它。该方法可行,但更好的解决方案应该是即将解决此页面上其他地方Sinigami提到的跟踪问题。
达里尔
[增加了2017年7月19日]
问题看起来好像在1.0.0房解决。 Alpha 5.此版本向RoomDatabase添加了一个回调函数,使您可以在数据库第一次创建时执行代码。看一看: