Chcę wykonać preformę Toast
po zakończeniu zadania w tle, aby poinformować użytkownika, że jest on ukończony.Jak przekazać kontekst do AsyncTask?
Zrobiłem nową klasę dla mojego asyncTask, ale nie mogę używać getApplicationContext()
w obrębie tej klasy.
Używam task.execute(getTempFile(this), getApplicationContext());
do uruchamiania zadań. getTempFile zwraca obiekt File i próbowałem przekazać kontekst jako obiekt Context.
Moja klasa zadań ma 3 zmienne AsyncTask<Object, Integer, Integer>
, więc kontekst znajduje się w drugim obiekcie. To jednak powoduje awarię aplikacji.
Edit
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();
}
}
zgłoś swoją klasę AsyncTask i szkielet głównej klasie :) – Codeman
Zaktualizowałem moje pytanie za pomocą przykładowego kodu. – dotty