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