我在我的Android应用中使用SQLiteOpenHelper
,并希望在onCreate
方法中插入~20k语句。我无法使用预先填充的数据库,因为我遇到了OnePlus设备的问题(SQLiteAssetHelper - problems on specific phones, e.g. OnePlus)。
现在我将insert-statemtents存储在一个文件中并使用以下方式导入它:(R.raw.prefilled_data
是包含20k语句的文件)。
目前Nexus 5需要大约6秒钟,这还不错,但也许有办法让它更快?
这发生在onCreate
try {
insertFromFile(R.raw.prefilled_data);
} catch (IOException e) {
e.printStackTrace();
}
private void insertFromFile(int resourceId) throws IOException {
// Open the resource
InputStream insertsStream = AboalarmApp.getContext().getResources().openRawResource(resourceId);
BufferedReader insertReader = new BufferedReader(new InputStreamReader(insertsStream));
// Iterate through lines (assuming each insert has its own line and theres no other stuff)
while (insertReader.ready()) {
String insertStmt = insertReader.readLine();
myDataBase.execSQL(insertStmt);
}
insertReader.close();
}