android中dialog的dismiss()和cancel()的区别
16lz
2022-07-24
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的回调。
更多相关文章
- android EditText设置不可写
- 2014.01.21 ——— android 关联android-support源码
- 细数Android(安卓)Studio中使用junit4测试框架中的坑
- Android(安卓)Activity的启动
- Android内容提供者源码
- android源码下载方式
- APP开发实战94-Vector静态图的使用
- 【30篇突击 android】源码统计四
- Android(安卓)开发中的倒计时