SQLiteOpenHelper:执行~20k语句的最快方法?

时间:2016-01-14 15:24:04

标签: android sqliteopenhelper

我在我的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();
    }

0 个答案:

没有答案