Tôi có một AsyncTask trong đó tôi thấy một ProgressDialog trong onPreExecute, và giấu nó một lần nữa trong onPostExecute, một cái gì đó giống nhưHủy AsyncTask khi người dùng nhấn lại nút
final class UploadTask extends AsyncTask {
ProgressDialog dialog = new ProgressDialog(...);
protected onPreExecute() {
dialog.show();
}
protected onPostExecute() {
dialog.hide();
}
};
Hộp thoại là hủy và thực sự biến mất khi tôi nhấn nút hủy trong khi thực thi AsyncTask.
Khi điều này xảy ra, tôi muốn chạy một số mã để hủy AsyncTask (ngay bây giờ, thậm chí nghĩ rằng ProgressDialog biến mất, AsyncTask tiếp tục chạy và cuối cùng hoàn thành). Tôi đã cố gắng phát triển lớp học của riêng mình từ ProgressDialog và sau đó làm
setOnDismissListener(new OnDismissListener() {
@Override public void onDismiss(DialogInterface d) {
/* do something */
}
};
(hoặc cái gì đó tương tự với OnCancelListener), nhưng điều này không bao giờ được gọi.
Bất kỳ ý tưởng nào? Tôi chỉ cần một số cơ chế để người dùng hủy AsyncTask đang chạy trong khi ProgressDialog đang hiển thị.
một ví dụ cho hủy một AsyncTask http : //www.quicktips.in/correct-way-to-cancel-an-asynctask-in-android/ –