2013-09-22 10 views
0

我使用AlertDialog.Builder來構建並顯示一個對話框。在顯示時,只要用戶不關閉對話框,只要活動運行,我就希望該對話框保持不變。只要我的活動生活(如果用戶不解僱它),如何讓對話生活?

問題是在我的Galaxy S3中,它工作的很好,但在HTC Wildfire或Desire中,它不能按預期工作。如果我鎖定並解鎖屏幕,我的對話框消失。

我該如何使它適用於所有設備?

+0

不幸的是,你有點在系統的擺佈。我認爲你最好的選擇是在onPause()中保存對話狀態,即顯示或不顯示,然後在onResume()查找保存狀態並用它來確定是否應該重新顯示對話框。這可能會對已經正常工作的設備產生意想不到的影響。 – FoamyGuy

回答

1

您應該使用一個DialogFragmentonCreateDialog(int id, Bundle args)建設AlertDialog,並顯示它使用showDialog(int id)。許多HTC設備積極回收內存,使您的應用處於與配置更改類似的狀態。遵循這些限制可以解決問題。

http://developer.android.com/guide/topics/ui/dialogs.html