Activity.isFinishing()返回true但是错误

时间:2016-11-17 09:10:00

标签: android android-activity activity-lifecycle

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

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

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

在什么情况下会发生?

3 个答案:

答案 0 :(得分:1)

试试这个:

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

希望它会有所帮助。

答案 1 :(得分:1)

我发现了我的问题。

检查if(!activity.isFinishing())的类是Singletone,在某些情况下,当应用程序转到后台时,Activity已关闭,当应用程序返回前台时,新Activity 1}}已创建且旧活动仍在Singletone中且未更新。

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

希望它可以帮助任何人。

答案 2 :(得分:0)

我以为你可能在对话中遇到问题 检查对话框:

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