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

来源:互联网 发布:基础网络架构 编辑:程序博客网 时间:2024/06/11 04:28

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的回调。



0 0
原创粉丝点击