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