在我的活动中,我从 Web 服务加载了一些数据,在此期间我向用户显示 ProgressDialog ...我希望用户能够在按下 BACK D-Pad 键时关闭活动。我已经这样做了:
public class MyActivity implements OnCancelListener {
/* ... */
public void startDialog() {
ProgressDialog pd = ProgressDialog.show(
MyActivity.this, // Context
"", // title for dialog
"Loading...", // message for dialog
true, // indeterminate?
true, // cancellable?
this // onCancelListener()
);
}
@Override
public void onCancel(DialogInterface dialog) {
// I want to finish() this activity when dialog is canceled
finish();
}
}
您可以看到我正在Dialog 的OnCancelListener接口的onCancel()方法中完成当前活动。但是当我在对话框可见期间按 BACK 时,不会调用此方法。对话框消失,但未调用 onCancel。
是吗?