在iOS上接收通知时,确定应用程序是否在前台运行

37

我想找到一种方法,可以查看当我的应用程序弹出本地通知时,前台正在运行的应用程序或是否显示了主屏幕。例如,我想要有不同的操作,如果在主屏幕或在其他人的应用程序中。 我尝试使用处理和pid,但pid是在应用程序启动时生成的,而不是最后一次使用应用程序时生成的。 有什么想法吗? 谢谢

3个回答

65

我想知道是否有其他应用程序在前台运行,例如相机、iPod或笔记。 - user1117453
那么,你对我的回答有什么困惑吗?如果你阅读[[UIApplication sharedApplication] applicationState],它会告诉你你的应用程序是在前台还是后台。 - DarkDust
是的,这是针对我的应用程序。我怎么知道在我的应用程序之前是什么应用程序?如果是相机应用程序或应用商店应用程序呢? - user1117453
1
无法获取此信息。您只知道您的应用程序是否在前台。 - DarkDust

21

只是为了让其他人能够复制粘贴代码:

if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
    //App is in foreground. Act on it.
}

加一,方便复制粘贴。 - quemeful

19

Swift 5版本:

import UIKit
let isForeground = UIApplication.shared.applicationState == .active

3
值得注意的是,您需要导入UIKit,因为不明显的是UIApplication标识符的来源。 - SimpleJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接