У меня есть AsyncTask, в котором я показываю ProgressDialog в onPreExecute и снова скрываю его в onPostExecute, что-то вроде
final class UploadTask extends AsyncTask {
ProgressDialog dialog = new ProgressDialog(...);
protected onPreExecute() {
dialog.show();
}
protected onPostExecute() {
dialog.hide();
}
};
Диалог отменяется и действительно исчезает, когда я нажимаю кнопку отмены во времявыполнение AsyncTask.
Когда это происходит, я хотел бы также запустить некоторый код для отмены AsyncTask (прямо сейчас, даже если он ProgressDialog уходит, AsyncTask продолжает работать и в конечном итоге завершается).Я попытался извлечь свой собственный класс из ProgressDialog, а затем сделать
setOnDismissListener(new OnDismissListener() {
@Override public void onDismiss(DialogInterface d) {
/* do something */
}
};
(или что-то подобное с OnCancelListener), но это просто никогда не вызывается.
Есть идеи?Мне просто нужен какой-то механизм, чтобы пользователь мог отменить запущенную AsyncTask, пока отображается ProgressDialog.