Abbrechen AsyncTask, wenn der Benutzer die zurück-Taste drückt

Ich habe einen AsyncTask in denen ich einen ProgressDialog in das onPreExecute -, und verstecken es wieder in onPostExecute, so etwas wie

final class UploadTask extends AsyncTask {
   ProgressDialog dialog = new ProgressDialog(...);

   protected onPreExecute() {
      dialog.show();
   }
   protected onPostExecute() {
      dialog.hide();
   }
};

Dialog ist kündbar und in der Tat geht Weg, wenn ich drücken Sie die Abbrechen-Taste während der Ausführung der AsyncTask.

Wenn das passiert, möchte ich ausführen von code zum Abbrechen der AsyncTask als auch (gerade jetzt, dachte er ProgressDialog Weg geht, der AsyncTask läuft weiter und irgendwann abgeschlossen ist). Ich habe versucht die Ableitung meiner eigenen Klasse von ProgressDialog und dann tun

setOnDismissListener(new OnDismissListener() {
@Override public void onDismiss(DialogInterface d) {
   /* do something */
   }
};

(oder etwas ähnliches mit einem OnCancelListener), aber das hat einfach nie aufgerufen wird.

Irgendwelche Ideen? Ich brauche nur einen Mechanismus für den Benutzer zum Abbrechen eines Laufenden AsyncTask, während ein ProgressDialog zeigt.

Schreibe einen Kommentar