Activity.isFinishing() return 正确但错误

Activity.isFinishing() return true but is wrong

在显示对话框之前,我检查 activity 是否正在完成以避免应用程序崩溃。

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

但在某些情况下它 returns 是正确的,但 activity 没有完成,我可以继续使用我的应用程序,但是当我尝试显示一个对话框时它说 activity 是整理。

什么情况下会发生?

试试这个:

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

希望对您有所帮助。

我认为你的对话可能有问题 检查你的对话框:

if(mDialog.isShowing||mDialog.!=null){mDialog.finish();}

我发现了我的问题。

检查 if(!activity.isFinishing()) 的 class 是 Singletone,在某些情况下,当应用进入后台时,Activity 关闭,当应用返回时前台创建了一个新的 Activity,而旧的 activity 仍在 Singletone 中并且没有更新。

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

希望对大家有所帮助。