以《MyT》项目为例,把AsyncTaskDemo放出来。希望对大家有用。
private ProgressDialog pDialog;
private CheckedIn task;
class CheckedIn extends AsyncTask<String, String, Integer> {
@Override
protected void onCancelled() {
super.onCancelled();
}
@Override
protected Integer doInBackground(String... params) {
//do something
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
/**
* 更新UI线程的
*/
@Override
protected void onPostExecute(Integer result) {
super.onPostExecute(result);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = ProgressDialog.show(WelcomeActivity.this, "", "加载中...",
true);
//只能在这里捕捉pDialog的返回按钮事件
pDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface arg0, int arg1,
KeyEvent arg2) {
if (arg1 == KeyEvent.KEYCODE_BACK) {
task.cancel(true);
pDialog.dismiss();
}
return false;
}
});
}
}