1. 程式人生 > >Dialog dismiss 和 cancel的區別

Dialog dismiss 和 cancel的區別

看下繼承關係圖
這裡寫圖片描述
dissmiss和cancel方法屬於Dialog

看下cancel方法
這裡寫圖片描述
可以看出在cancel裡面執行了dismiss方法

那麼再看下mCancelMessage是什麼:
這裡寫圖片描述

就是說要有呼叫setOnCancelListener 這個方法的時候,cancel才會有除了取消dialog之外的作用,不然就和dismiss沒什麼區別了。。

總結:
執行cancel:
回撥setOnCancelListener的監聽事件—–>執行dismiss。

執行dismiss:
取消dialog—–>回撥setOnDismissListener的監聽事件。

如果只是取消dialog,那麼用哪個都一樣的。(Dialog的子類同理)