在Activity中开启一个AsyncTask异步任务时,如果使用ProgressDialog作为进度条,我们可能会需要点击回退建时撤销异步任务,但当我们重写Activity的onBackPressed方法调用finish(),发现Activity的onDestroy的方法并没有被调用。
解决方案:
在ProgressDialog显示之后,调用
mProgressDialog.setOnKeyListener(onKeyListener);
设置监听事件。
private OnKeyListener onKeyListener = new OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
//按下返回键
//TODO
}
return false;
}
};
以上代码就可以捕获ProgressDialog显示时的回退键的按键。