接近光標我有一個很大的問題。這是代碼:安卓:凡使用CustomAdaters在AsynTask
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()
和newView()
方法
如果我運行上面的代碼中,我得到了以下錯誤:
java.lang.IllegalStateException: attempt to re-open
an already-closed object: android.database.sqlite.SQLiteQuery
似乎getView()
和newView()
在UI線程上運行的方法!!!!!!
問題很簡單:我要把cursor.close()
放在哪裏? 我不想使用CursorLoader和/或startManagingCursor(..)
請幫我!!!