在我的活动中,我想显示简单的信息对话框,例如:
new AlertDialog.Builder(context).setMessage(message).show();
如果我这样做,当我旋转手机时对话框会泄漏(更不用说它也会消失,因此用户可能会错过它).我可以使用托管对话框,但我不确定你如何合理地使用它来处理这些类型的短消息?看起来你必须这样做:
showDialog(SOME_DLG_ID); ... @Override onCreateDialog(int id) { if (id == SOME_DLG_ID) { new AlertDialog.Builder(context).setMessage(message).show(); } }
因为它是一个覆盖方法,所以无法将消息传递给onCreateDialog.我讨厌制作父活动的成员变量,只存储当前消息应该是什么.你们都是这样做的?
谢谢
解决方法
if I do that,the dialog will leak
when I rotate that phone (not to
mention it will disappear as well,so
the user may miss it)
你可以加
<activity android:configChanges="orientation|keyboardHidden" >
到您的AndroidManifest.xml以防止在手机旋转时重新启动活动.我在我的应用程序中使用它,我的AlertDialog幸存了手机的旋转.