Tente isto:
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
}
}
Você pode chamar isso de AsyncTask pela seguinte linha - supondo que você esteja em uma atividade:
new FetchData().execute(this);
se você não puder alterar sua desaceleração AsyncTask, tente usar uma variável estática - embora não seja tão eficiente e bonita quanto a desaceleração AsyncTask. Tente isto:
Class myStatic{
private static Context mContext;
static public void setContext(Context c);
mContext = c;
}
static public Context getContext(){
return mContext;
}
}
e em seu código principal, antes de chamar AsyncTask, chame isto:
myStatic.setContext(this);
no seu método doInBackground do seu AsyncTask, adicione isto:
Context myContext = myStatic.getContext();