2012-04-02 68 views
3

我有一個擴展的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()之間。

+1

http://greendao-orm.com/2011/12/17/sql-performance-in-android-4-0/ – waqaslam 2012-04-02 07:40:45

+0

注:我使用FTS3 SQLite表 – Vame 2012-04-02 13:06:41

回答

1

SimpleCursorAdapter由於相同的原因已被棄用。谷歌建議使用CursorLoader而不是SimpleCursorAdapter以獲得更好的速度。 ArrayAdapter也是一個好主意。

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

+0

你好,謝謝爲你的答案。請檢查我上面編輯的答案。我做錯了什麼或者誤解了你的答案? – Vame 2012-04-02 11:46:14

+1

SimpleCursorAdapter不被棄用,加載器和適配器是兩個完全不同的東西...... – Kuno 2014-11-04 12:51:17

相關問題