(轉)Android中Dialog的“生命週期”

在android中Dialog是我們常用的控制之一,經常來做一些提示相關的工作 ,Google爲了方便開發者,也給我們提供了很多Dialog相關的定製化方法,也能在github上找到許多找到很多樣式各異的Dialog。

但是在平常的開發中有時我們也需要簡單的瞭解一下他的“生命週期”當然這裏的生命週期只是我的個人統稱,通常一個Dialog的簡單一生是,create ->show ->dismiss 就這樣終結了

下面試一個簡單的Dialog的使用:

有些時候我們需要在Dialog的一些方法中處理一些事情,我最近就有一個類似的需求,在Dialog消失的時候處理一些相關的事情,但是又不能強迫用戶非要去單擊你的確認或者取消按鈕,於是就只能通過監聽Dialog消失時所走的一些方法,因爲Dialog消失有很多種情況,但是又怎麼保證你寫的方法一定會在Dialog消失時執行哪,於是就各種嘗試,最後發現不管你怎麼把Dialog弄消失,最後都會執行onDismissListener的監聽方法

情況一:單擊返回鍵或單擊屏幕其他地方時,Dialog會執行onCancel ->onDismiss

情況二:單擊Dialog上的按鈕:Dialog會直接執行onDismiss的監聽方法

當然進程被殺掉這是一種特殊情況下

以上只是Dialog的簡單解釋,Dialog還有博大精深的需要自己慢慢挖掘,當然有時候我們也可以把一個Activity當做Dialog來使用,只需要我們寫好相關的佈局樣式,然後給這個Activity設置自己的主題樣式,主要就是android:backgroundDimAmount 的設置和android:windowBackground以及android:windowIsTranslucent的設置就可以簡單的實現把一個Activity當Dialog來使用。



作者:沐絡
鏈接:https://www.jianshu.com/p/cd8bd2cb78c7
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯繫作者獲得授權並註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章