Essayez ceci :
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
}
}
Vous pouvez appeler cette AsyncTask par la ligne suivante - en supposant que vous êtes dans une activité :
new FetchData().execute(this);
si vous ne pouvez pas modifier votre décélération AsyncTask, vous pouvez essayer d'utiliser une variable statique - bien qu'elle ne soit pas aussi efficace et jolie que la décélération AsyncTask. Essayez ceci :
Class myStatic{
private static Context mContext;
static public void setContext(Context c);
mContext = c;
}
static public Context getContext(){
return mContext;
}
}
et dans votre code principal, avant d'appeler AsyncTask, appelez ceci :
myStatic.setContext(this);
dans votre méthode doInBackground de votre AsyncTask, ajoutez ceci :
Context myContext = myStatic.getContext();