Come si passa un contesto a un AsyncTask?

Voglio preformare un Toast quando un'attività in background è completata, solo per far sapere all'utente che è finito.

Ho creato una nuova classe per il mio asyncTask ma non posso usare getApplicationContext () all'interno di questa classe.

Sto usando task.execute (getTempFile (this), getApplicationContext ()); per eseguire le attività. getTempFile restituisce un oggetto File e stavo cercando di passare il contesto come oggetto Context.

La mia classe Task ha 3 variabili AsyncTask quindi il contesto è nel secondo oggetto . Tuttavia, l'applicazione si arresta in modo anomalo.

Modifica

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

}
23
задан dotty 15 August 2011 в 14:46
поделиться