2012-04-02 11 views
3

私は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()の間にあります。

+1

http://greendao-orm.com/2011/12/17/sql-performance-in-android-4-0/ – waqaslam

+0

注:私はfts3 sqliteのテーブル – Vame

答えて

1

SimpleCursorAdapterは、同じ理由から非難されています。スピードを上げるため、SimpleCursorAdapterの代わりにCursorLoaderを使用することをおすすめします。 ArrayAdapterも良い考えです。

http://developer.android.com/reference/android/content/CursorLoader.html

+0

こんにちはを使用しています、ありがとうございましたあなたの答えです。上記の私の編集された答えをチェックしてください。間違っていることやあなたの答えを誤解していますか? – Vame

+1

SimpleCursorAdapterは推奨されなくなりました。ローダーとアダプターは全く異なる2つのことです... – Kuno

関連する問題