Я использую SimpleCursorAdapter для отображения результатов в ListView, но так как я много раз запрашивал свою базу данных во время поиска (используя виджет SearchView), меня беспокоит, что курсор может быть оставлен открытым.
Вот как я запрашиваю свою базу данных и показываю результаты в 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);
}
}
}
Я пробовал много вещей, чтобы закрыть курсор, но даже если я закрою его после mResultsListView.setAdapter(cursorAdapter);
, результат всегда будет таким же: пустой ListView.
Я уже видел пару вопросов, в которых упоминается, что курсор будет закрыт автоматически, но я хочу убедиться, что это правда.
Есть ли официальная документация об этом? Действительно ли SimpleCursorAdapter автоматически закрывает курсор??
Спасибо заранее.