sql >> Database teknologi >  >> RDS >> SQLite

Sådan bruges databasehelper-klassen i en asynctask-klasse, der arbejder på en anden klasse

Prøv dette:

 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 kalde denne AsyncTask på følgende linje - forudsat at du er i en aktivitet:

 new FetchData().execute(this);

hvis du ikke kan ændre din AsyncTask-deceleration, så kan du prøve at bruge en statisk variabel - selvom den ikke er så effektiv og smuk som AsyncTask-deceleration. Prøv dette:

Class myStatic{
private  static Context mContext;


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

static public Context getContext(){
return mContext;
}

}

og i din hovedkode, før du kalder AsyncTask, skal du kalde dette:

myStatic.setContext(this);

i din doInBackground-metode for din AsyncTask skal du tilføje dette:

Context myContext = myStatic.getContext();



  1. Forståelse af transaktioner i SQL

  2. PostgreSQL Opret indeks

  3. Kan ikke løse indsamlingskonflikt

  4. SQL Server-systemdatabaser – Tempdb-vedligeholdelsen