2013-02-10 16 views
11

我已經閱讀了幾個stackoverflow.com的答案,但仍然沒有看到使用DialogFragment的優勢,而不是使用簡單的AlertDialog。我有,顯然,兩種策略:在簡單的AlertDialog上使用DialogFragment的優點?

一)使用AlertDialog.Builder配置的AlertDialog,.create(),然後.show()它在我的活動(在某些按鈕處理),或

b)的子類DialogFragment,寫在onCreateDialog相同AlertDialog建設()的代碼(除了我剛剛返回.create(),然後,在我的活動,實例化一個DialogFragment,並顯示它。

輸出看起來是一樣的。

無論哪種方式,我是而不是使用不推薦的代碼 - 我正在使用。使用AlertDialog或DialogFragment顯示()。當我轉到另一個大小的設備時是否有優勢?或者有什麼意義......

感謝您的任何見解,

邁克爾

回答

23

DialogFragment處理一些生命週期管理的情況下爲你包括配置更改(如屏幕旋轉),如果您的應用程序狀態恢復在後臺死亡,用戶稍後返回。如果你不使用DialogFragment,你將需要以另一種方式處理這種情況。

+1

謝謝!我希望Google在文檔中說過類似的話。 – 2013-02-10 23:20:06

+3

可以安排。 ;) – adamp 2013-02-12 07:07:24

0

除了@adamp說的以外,由於DialogFragment正在獲取自己的生命週期回調,它將負責其生命週期,因此您的活動不會負責告訴它該做什麼。

例如,當活動完成時,您的活動應該將對話框告知dimiss(),否則您會看到它在logcat中有leaked the window錯誤。

相關問題