私はsqliteデータベースからのデータで提案リストを完成させる拡張CursorAdapterクラスを持っています。これまでアンドロイド2.3は正常に動作していましたが、アンドロイド4.0.1では非常に遅いと感じています。もう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
注:私はfts3 sqliteのテーブル – Vame