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();