我正在使用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()
时,虽然我的光标有一个有限的计数,但我无法检索单个记录。
答案 0 :(得分:0)
让活动通过调用startManagingCursor()
来处理它。