在显示对话框之前,我检查活动是否完成以避免应用程序崩溃。Activity.isFinishing()返回true但错误
if(!activity.isFinishing()){
showDialog();
}
但在某些情况下,它返回true,但活动没有结束,我可以继续使用我的应用程序,但是当我尝试显示一个对话框,它说,活动结束。
在什么情况下可以发生?
在显示对话框之前,我检查活动是否完成以避免应用程序崩溃。Activity.isFinishing()返回true但错误
if(!activity.isFinishing()){
showDialog();
}
但在某些情况下,它返回true,但活动没有结束,我可以继续使用我的应用程序,但是当我尝试显示一个对话框,它说,活动结束。
在什么情况下可以发生?
我发现了什么是我的问题。
是检查if(!activity.isFinishing())
类是Singletone
在某些情况下,当应用程序去后台Activity
被关闭,当应用程序回到前台新Activity
创建和老年活动仍然是在Singletone
和没有更新。
所以我确信Singletone
在这种情况下更新了Activity
。
希望它可以帮助任何人。
试试这个:
if(!activity.isDestroyed()) {
showDialog();
}
希望这将有助于。
我想你可能有问题,在对话框中 检查您的对话框:
if(mDialog.isShowing||mDialog.!=null){mDialog.finish();}
分享您的代码 –
为什么你这样做呢?我不明白你想解决什么问题... –
我试图避免BadTokenException当dialog.show()被调用 – YGHM