2012-01-16 4 views
1

AsyncTaskを使用して、データベースから情報を取得しています。 IはpostExecute方法でこのカーソルを使用アダプタとasynctaskを使用するときに、カーソルを閉じる場所はどこですか?

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; 

: はしたがってdoInBackgroundメソッド内、私は、次のコードを書く

adapter = new TimelineAdapter(TestActivity.this, cursor); 
listTimeline.setAdapter(adapter); 
dbhandler.close(); 
Log.d(TAG, "Getting here ..."); 

今問題がある:私はこれを続ける場合でありますカーソルが閉じなければならないと言って、logcatにエラーが表示されます。しかしcursor.close()postExcecute()メソッドで書くと、私のカーソルは有限のカウントを持っていますが、1つのレコードを取得することはできません。

答えて

0

アクティビティにstartManagingCursor()を呼び出して処理させます。

関連する問題