Comment puis-je passer d'un contexte à un AsyncTask?

Je veux préforme un Toast lorsqu'une tâche d'arrière-plan est terminé, juste pour laisser l'utilisateur de savoir que c'est fini.

J'ai fait une nouvelle classe pour mon asyncTask, mais je ne peux pas utiliser getApplicationContext() sein de cette classe.

Je suis en utilisant task.execute(getTempFile(this), getApplicationContext()); pour exécuter les tâches. getTempFile retourne un objet de Fichier, et j'ai essayé de passer le contexte comme un objet de Contexte.

Ma Tâche de classe a 3 variables AsyncTask<Object, Integer, Integer> de sorte que le contexte est dans le deuxième objet. Cependant, cette panne de l'application.

Modifier

public class LocationActivity extends Activity implements LocationListener {
    protected void handleImage(Bitmap thumbnail){
        PushDataToServer task = new PushDataToServer();
        task.execute(getTempFile(this), getApplicationContext());
    }
}




public class PushDataToServer extends AsyncTask<Object, Integer, Integer> {

    Context context;

    @Override
    protected Integer doInBackground(Object... params) {
        //TODO Auto-generated method stub
        this.context = (Context) params[1];
        File file = (File) params[0];
        return null;
    }

    protected void onPostExecute(String result) {   
         Toast toast = Toast.makeText(this.context, "All done!", Toast.LENGTH_SHORT);
         toast.show();
    }

}
  • Merci de poster votre classe AsyncTask et le squelette de votre classe principale 🙂
  • Mise à jour de ma question avec un exemple de code.
InformationsquelleAutor dotty | 2011-08-15