Я использую AsyncTask
для извлечения некоторой информации из базы данных.Следовательно, в методе doInBackground
я пишу следующий код:
dbhandler = new DbHandler(TestActivity.this);
db = dbhandler.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT sys_id as _id,statuses,user,created_at FROM status ORDER BY sys_id desc", null);
Log.d(TAG, "cursor got count: " + cursor.getCount());
return cursor;
Я использую этот курсор в методе postExecute
, который:
adapter = new TimelineAdapter(TestActivity.this, cursor);
listTimeline.setAdapter(adapter);
dbhandler.close();
Log.d(TAG, "Getting here ...");
Теперь проблема заключается в следующем:если я оставлю это как есть, я получу ошибку в logcat
, говорящую, что курсор должен быть закрыт.Но когда я пишу cursor.close()
в методе postExcecute()
, я не могу получить ни одной записи, хотя мой курсор имеет конечное число.