使用下面的代碼,當用戶點擊在移動裝置的背面鍵,其取消的AsyncTask。手柄progressdialog中的AsyncTask
protected class UploadFiles extends AsyncTask<String, String, String> implements OnDismissListener {
private ProgressDialog mDialog;
protected void onPreExecute() {
super.onPreExecute();
mDialog = new ProgressDialog(UploadFiles.this);
mDialog.setMessage(progressMsg);
mDialog.setCancelable(true);
mDialog.setOnDismissListener(this);
mDialog.show();
}
protected String doInBackground(String... params) {
........
........
}
public void onDismiss(DialogInterface dialog) {
this.cancel(true);
}
protected void onCancelled() {
cancel(true);
}
上述實現在用戶單擊移動設備的BACK按鈕時取消AsyncTask。
由於該任務是一項長期耗時的操作,我想提供用戶是否要取消操作與否,當用戶點擊移動設備的BACK按鈕,用戶警報(警告)。
我沒有收到BACK按鈕回調onBackPressed()顯示進度對話框時&用戶單擊後退按鈕。
這是我面臨的三星平板P6200 &不是在Android模擬器的另一個問題:
當顯示progressdialog &用戶觸摸progressdialog區域外的屏幕上,progressdialog駁回。
如何停止解除進度對話框?
任何建議/執行相同的提示會有所幫助。
}
感謝您的評論。我從AsyncTask的onPreExecute()調用mDialog.show()。如何在用戶點擊BACK按鈕時顯示警報? – chiranjib 2012-03-17 14:41:33
使用'setOnCalcelListener()' – 2012-03-17 14:47:28