sql >> Databasteknik >  >> RDS >> SQLite

Hur man använder databasehelper-klassen i en asynctask-klass som arbetar på en annan klass

Prova detta:

 private class FetchData extends AsyncTask<Context, Void, Void> {
     protected Long doInBackground(Context... c) {
         Context myContext = c[0];
// Do your things here....
     }


     protected void onPostExecute() {
// Insert your post execute code here
     }
 }

Du kan kalla denna AsyncTask på följande rad - förutsatt att du är i en aktivitet:

 new FetchData().execute(this);

om du inte kan ändra din AsyncTask-retardation, kan du prova att använda en statisk variabel - även om den inte är lika effektiv och vacker som AsyncTask-retardation. Prova detta:

Class myStatic{
private  static Context mContext;


static public void setContext(Context c);
mContext = c;
}

static public Context getContext(){
return mContext;
}

}

och i din huvudkod, innan du ringer AsyncTask, ring detta:

myStatic.setContext(this);

i din doInBackground-metod för din AsyncTask, lägg till detta:

Context myContext = myStatic.getContext();



  1. Tidiga registreringar öppnar för PGDay.IT 2011

  2. Databasmodell för ett meddelandesystem

  3. Konstruktorn SQLiteOpenHelper() är odefinierad

  4. Förhandsgranska dokument i Microsoft Access Form