sql >> Base de Datos >  >> RDS >> SQLite

Cómo usar la clase de ayudante de base de datos en una clase asíncrona que trabaja en una clase diferente

Prueba esto:

 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
     }
 }

Puede llamar a esta AsyncTask con la siguiente línea, suponiendo que se encuentre en una actividad:

 new FetchData().execute(this);

Si no puede cambiar la desaceleración de AsyncTask, puede intentar usar una variable estática, aunque no es tan eficiente y bonita como la desaceleración de AsyncTask. Prueba esto:

Class myStatic{
private  static Context mContext;


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

static public Context getContext(){
return mContext;
}

}

y en su código principal, antes de llamar a AsyncTask, llame a esto:

myStatic.setContext(this);

en su método doInBackground de su AsyncTask, agregue esto:

Context myContext = myStatic.getContext();