2016-11-17 609 views
2

在显示对话框之前,我检查活动是否完成以避免应用程序崩溃。Activity.isFinishing()返回true但错误

if(!activity.isFinishing()){ 
    showDialog(); 
} 

但在某些情况下,它返回true,但活动没有结束,我可以继续使用我的应用程序,但是当我尝试显示一个对话框,它说,活动结束。

在什么情况下可以发生?

+1

分享您的代码 –

+1

为什么你这样做呢?我不明白你想解决什么问题... –

+0

我试图避免BadTokenException当dialog.show()被调用 – YGHM

回答

1

我发现了什么是我的问题。

是检查if(!activity.isFinishing())类是Singletone在某些情况下,当应用程序去后台Activity被关闭,当应用程序回到前台新Activity创建和老年活动仍然是在Singletone和没有更新。

所以我确信Singletone在这种情况下更新了Activity

希望它可以帮助任何人。

1

试试这个:

if(!activity.isDestroyed()) { 
    showDialog(); 
    } 

希望这将有助于。

0

我想你可能有问题,在对话框中 检查您的对话框:

if(mDialog.isShowing||mDialog.!=null){mDialog.finish();} 
相关问题