来自Sqlite数据库的AutocompleteTextView滞后,有超过百万条记录

时间:2015-06-20 17:47:44

标签: android sqlite

我使用addTextChangedListener将记录提取到适配器中。如果我异步查询数据库,那么没有滞后,但是一旦我输入单词,我就没有在我的AutocompleteTextView中得到建议,如果我在UI线程上查询,那么就会出现严重的延迟。我已经索引了我的桌子。 如何提高sqlite数据库性能。

查询

    String where =x+" LIKE ?";
    String[] whereArgs = new String[] {column_name+"%"};
    cursor = db.query(TABLE_NAME,TABLE_COLUMNS,where,whereArgs, null, null, null, "10");

的AsyncTask

private class FindText extends AsyncTask<String, Void, Void>
{
    private ArrayList<TextModel> textModels;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        startSppiner("", "", false);
    }

    @Override
    protected Void doInBackground(String... params) {
        textModel= new StoreFactory(mActivity, 0).getSchedulesByWordSpecific(params[0].trim());
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        stopSppiner();
        for(TextModel textModel: textModels)
            {
                mAdapter.add(textModel.getWord());  
                textMap.put(textModel.getText(), textModel);
            }
        mAdapter.notifyDataSetChanged();
    }

}

0 个答案:

没有答案