Erneute öffnen eines bereits geschlossenen Objekt: java.lang.IllegalStateException:?

Ich weiß diese Frage wurde oft gefragt in SO,aber ich konnte nicht herausfinden, mein genaues problem.

Ich bin mit dem folgenden code, um die Daten aus der Datenbank(Tabelle1) und ein weiteres update Tabelle2 basiert auf der retrieval-Wert. Seine Ordnung, die in manche android-Versionen, aber wenn ich gegangen, um zu testen mit Android 4.0.3. Ich bin geting dieses java.lang.IllegalStateException:?.attempt to re-open an already-closed object bei sum_cursor.moveToNext();.

Ich bin mit diesem code in AsyncTask.

 /** Sum of total matched values*/
            Cursor sum_cursor = db.gettotalMatchvalue(this);
             if(sum_cursor!=null)
             {
                 sum_cursor.moveToFirst();
                 for(int j=0; j<sum_cursor.getCount();j++)
                 {    
                     float totalmatchedscore = sum_cursor.getInt(0);
                     float totalingredients = Float.parseFloat(sum_cursor.getString(sum_cursor.getColumnIndex(APPDatabase.CK_TOTALINCREDIENTS)));
                     /**average = totalscore/totalingredients*/
                     double average = totalmatchedscore/totalingredients;
                     int id = Integer.parseInt(sum_cursor.getString(sum_cursor.getColumnIndex(APPDatabase.CK_ID))); 

                 db.updateAverage(id, average); 
                 sum_cursor.moveToNext(); //Here is the problem
                 }  
             }   
             db.close();  

Meine update-Methode Codierung

/** Update average */
public void updateAverage(int id,double average)
{
    SQLiteDatabase db = getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(CK_FINALVALUE,average);
    db.update(TABLE, values,CK_ID+" = "+id , null);   
}

Was mache ich hier falsch?

Ich weiß, viele von Euch in dieser situation. Könnten Sie mir helfen Jungs.

Vielen Dank für Ihre Hilfe.

InformationsquelleAutor der Frage vinothp | 2012-07-24

Schreibe einen Kommentar