0
我使用AlertDialog.Builder
來構建並顯示一個對話框。在顯示時,只要用戶不關閉對話框,只要活動運行,我就希望該對話框保持不變。只要我的活動生活(如果用戶不解僱它),如何讓對話生活?
問題是在我的Galaxy S3中,它工作的很好,但在HTC Wildfire或Desire中,它不能按預期工作。如果我鎖定並解鎖屏幕,我的對話框消失。
我該如何使它適用於所有設備?
我使用AlertDialog.Builder
來構建並顯示一個對話框。在顯示時,只要用戶不關閉對話框,只要活動運行,我就希望該對話框保持不變。只要我的活動生活(如果用戶不解僱它),如何讓對話生活?
問題是在我的Galaxy S3中,它工作的很好,但在HTC Wildfire或Desire中,它不能按預期工作。如果我鎖定並解鎖屏幕,我的對話框消失。
我該如何使它適用於所有設備?
您應該使用一個DialogFragment
或onCreateDialog(int id, Bundle args)
建設AlertDialog
,並顯示它使用showDialog(int id)
。許多HTC設備積極回收內存,使您的應用處於與配置更改類似的狀態。遵循這些限制可以解決問題。
不幸的是,你有點在系統的擺佈。我認爲你最好的選擇是在onPause()中保存對話狀態,即顯示或不顯示,然後在onResume()查找保存狀態並用它來確定是否應該重新顯示對話框。這可能會對已經正常工作的設備產生意想不到的影響。 – FoamyGuy