在屏幕打开时显示消息对话框并在方向更改时保留对话框。
public void onDestroy()
{ //savedMessageDialog id represents the current MessageDialogId
//dismiss the message dialog if message id displayed.
int savedMessageDialogId = MessageDialog.getSavedMessageDialogId();
if(savedMessageDialogId == MSG_BACK_DATE_WARNING){
MessageDialog.dismissMessageDialog();
}
}
并且我的 MessageDialog 扩展了 DialogFragment,因此我将相同的代码放在 onSavedInstancestate 中,它工作正常,没有问题 Succcess !!!
当我将此代码放在 onDestroy 中时,它正在创建多个实例,而我多次更改了方向,并且还注意到我将关闭对话框,因为当我从关闭状态返回到打开设备时,我的对话框显示出来了。并且我的 MessageDialog 在内部使用 AlertDialog....
private static MessageDialog currentMessageDialog = null;
public static void dismissMessageDialog()
{
if (MessageDialog != null && MessageDialog.isAdded())
{
try
{
currentMessageDialog.dismiss();
}
catch (IllegalStateException e)
{
e.printStackTrace();
}
finally
{
currentMessageDialog = null;
}
}
}
所以请让我知道为什么我不能关闭 onDestroy 中的对话框以及为什么为 MessageDialog 创建多个实例?请给我一些好的解决方案:-)