Quando fechar o Cursor usado no SimpleCursorAdapter
Estou usando um SimpleCursorAdapter para exibir resultados em um ListView, mas como tenho que consultar meu banco de dados várias vezes durante uma pesquisa (usando o widget SearchView), me preocupa que o cursor fique aberto.
É assim que eu consulto meu banco de dados e mostro os resultados em um 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);
}
}
}
Eu tentei muitas coisas para fechar o cursor, mas mesmo se eu o fechar depoismResultsListView.setAdapter(cursorAdapter);
O resultado é sempre o mesmo:um ListView vazio.
Já vi algumas perguntas nas quais é mencionado que o cursor será fechado automaticamente, mas quero garantir que isso seja verdade.
Existe alguma documentação oficial sobre isso? O SimpleCursorAdapter realmente fecha o cursor automaticamente??
Desde já, obrigado.