Cuándo cerrar el cursor utilizado en SimpleCursorAdapter
Estoy usando un SimpleCursorAdapter para mostrar los resultados en un ListView, pero dado que tengo que consultar mi base de datos muchas veces durante una búsqueda (usando el widget SearchView) me preocupa que el cursor pueda quedar abierto.
Así es como consulto mi base de datos y muestro los resultados en un ListView:
class SearchCustomers extends AsyncTask<String,Void,Cursor>{
@Override
protected Cursor doInBackground(String... params) {
//get the query
String query=params[0].toLowerCase(Locale.getDefault());
Cursor cursor=mDB.searchCustomersByName((query != null ? query : "@@@@"));
return cursor;
}
@Override
protected void onPostExecute(Cursor result) {
if (result != null) {
String[] from = new String[] { QuickOrderDB.ID,
QuickOrderDB.NAME,
QuickOrderDB.ADDRESS,
QuickOrderDB.PHONE_NUMBER };
int[] to = new int[] { R.id.customerIDTextView,
R.id.customerNameTextView,R.id.customerAddressTextView ,
R.id.customerPhoneTextView };
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(SearchCustomersActivity.this,
R.layout.results_customer_item, result, from, to);
mResultsListView.setAdapter(cursorAdapter);
}
}
}
He intentado muchas cosas para cerrar el cursor, pero incluso si lo cierro despuésmResultsListView.setAdapter(cursorAdapter);
El resultado es siempre el mismo:un ListView vacío.
Ya he visto un par de preguntas en las que se menciona que el cursor se cerrará automáticamente, pero quiero asegurarme de que esto sea cierto.
¿Hay alguna documentación oficial sobre esto? ¿SimpleCursorAdapter realmente cierra el cursor automáticamente??
Gracias por adelantado.