如何检查 activity 是否处于活动状态?

How to check if an activity is active?

我在 activity 中使用 AlertDialog。但是当我在显示对话框之前关闭 activity 时,应用程序崩溃,因为 AlertDialog 的上下文不存在。所以,我希望仅在 activity 处于活动状态时显示对话框。所以我的问题是如何检查 activity 是否处于活动状态。提前致谢。

在显示对话框之前检查 isFinishing 标志。如果 activity 正在完成,则 returns 为真,否则为假

if (!isFinishing()) {
  // show dialog
}

利用isFinishing()isDestroyed()

isFinishing() 从 api 级别 1

开始支持

isDestroyed() 从 api 级别 17

开始支持

在显示对话框之前使用它