我有一個擴展的CursorAdapter類,它完成了一個含有來自我的sqlite數據庫的數據的建議列表。到目前爲止,android 2.3使用起來很好,但現在在android 4.0.1中感覺很慢。另一件事,其次,建議列表滾動速度也很慢。冰淇淋三明治中的CursorAdapter有沒有已知的問題?在Nexus S設備上測試。CursorAdapter在Android上運行速度很慢4
編輯:
我改變了我的方法,並試圖用CursorLoader但仍需要年齡運行查詢,並填寫我的自動完成的列表。
的onCreate:
mSuggestionAdapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2, null,
new String[] { "name_en", "pcode" },
new int[] { android.R.id.text1, android.R.id.text2 }, 0);
search_text.setAdapter(mSuggestionAdapter);
getLoaderManager().initLoader(0, null, this);
onTextChanged:
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
getLoaderManager().restartLoader(0, null, MapActivity.this);
}
CursorLoader接口:
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
Uri baseUri = SearchableProvider.CONTENT_URI;
String select = DataBaseHelper.getWhereStatement(search_text.getText().toString());
return new CursorLoader(this, baseUri,
DataBaseHelper.SEARCHABLE_SUMMARY_PROJECTION, select, null,
"name_en");
//return null;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
// TODO Auto-generated method stub
mSuggestionAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
// TODO Auto-generated method stub
mSuggestionAdapter.swapCursor(null);
}
試圖與ArrayAdapter相同爲好。我在一段時間後(20-大約30秒)獲取數據,但自動完成Textview中的列表沒有出現。
延遲在onCreateLoader(異步返回CursorLoader)和onLoadFinished()之間。
http://greendao-orm.com/2011/12/17/sql-performance-in-android-4-0/ – waqaslam 2012-04-02 07:40:45
注:我使用FTS3 SQLite表 – Vame 2012-04-02 13:06:41