我有一个大问题..这是代码:
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 是一个CursorAdapter
使用getView()
andnewView()
方法的自定义
如果我运行前面的代码,我会收到以下错误:
java.lang.IllegalStateException: attempt to re-open
an already-closed object: android.database.sqlite.SQLiteQuery
似乎 getView()
和newView()
方法在 UI 线程上运行!!!!!!
问题很简单:我该放在cursor.close()
哪里?我不想使用 CursorLoader 和/或 startManagingCursor(..)
请帮我!!!