您的位置:首页 > 移动开发 > Android开发

android中dialog的dismiss()和cancel()的区别

2016-03-11 12:21 429 查看
dismiss() 主要作用是让dialog从屏幕上消失 源码如下:

/**
* Dismiss this dialog, removing it from the screen. This method can be
* invoked safely from any thread.  Note that you should not override this
* method to do cleanup when the dialog is dismissed, instead implement
* that in {@link #onStop}.
*/
@Override
public void dismiss() {
if (Looper.myLooper() == mHandler.getLooper()) {
dismissDialog();
} else {
mHandler.post(mDismissAction);
}
}


cancel() 源码如下:

/**
* Cancel the dialog.  This is essentially the same as calling {@link #dismiss()}, but it will
* also call your {@link DialogInterface.OnCancelListener} (if registered).
*/
public void cancel() {
if (!mCanceled && mCancelMessage != null) {
mCanceled = true;
// Obtain a new message so this dialog can be re-used
Message.obtain(mCancelMessage).sendToTarget();
}
dismiss();
}


从源码可以看出2个方法的效果一样都是让dialog消失, 只是cancel() 多了一个DialogInterface.OnCancelListener的回调。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: