私は大きな問題を抱えています.これはコードです:
private class ViewDataTableTask extends AsyncTask<Void, Void, String> {
...
protected String doInBackground(Void... params) {
Cursor listCursor = db.rawQuery("SELECT ..." , null);
ListView table_body = new ListView(context);
try{
table_body.setAdapter(new MyAdapter(context , listCursor));
}finally{
if(listCursor != null){
listCursor.close();
}
...
}
...
}
MyAdapter はandメソッドCursorAdapter
を使用するカスタムですgetView()
newView()
前のコードを実行すると、次のエラーが発生します。
java.lang.IllegalStateException: attempt to re-open
an already-closed object: android.database.sqlite.SQLiteQuery
メソッドがUIスレッドで実行されgetView()
ているようです !!!!!!!!newView()
質問は簡単です: どこに置く必要がありcursor.close()
ますか? CursorLoader や startManagingCursor(..) を使用したくない
私を助けてください!!!