我正在尝试像这样预先填充本地Room数据库:
Room.databaseBuilder(
context,
MyDatabase.class,
DB_NAME)
// prepopulate the database after onCreate was called
.addCallback(new Callback() {
@Override
public void onCreate(@NonNull SupportSQLiteDatabase db) {
super.onCreate(db);
AppExecutors.getInstance().diskIO().execute(() -> {
prepopulateDataEnglishVersionInDB(context);
});
}
})
.build();
问题在于数据很多,此过程需要10秒钟以上,并且阻塞了我的一个LiveData观察者,该观察者等待onCreate回调完成才能将数据插入数据库。
是否有更快的方法来预填充数据库?