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

时间:2011-12-27 10:27:04

标签: iphone ios multitasking foreground

我想找到一种方法来查看应用程序在前台运行的内容,或者当我的应用程序显示本地通知时是否显示主屏幕。例如,如果有主屏幕或其他应用程序,我想要有不同的操作。 我尝试使用已处理和pid,但是应用程序启动时会生成pid,而不是最后一次使用应用程序。 任何的想法? 感谢

3 个答案:

答案 0 :(得分:58)

push notification documentation中所述,当您收到通知以确定您的应用是否在前台时,您可以阅读[[UIApplication sharedApplication] applicationState],无效(它是可见的但是WiFi选择器之类的对话框在前面)或者在背景中。

答案 1 :(得分:13)

只需为其他人提供复制粘贴代码:

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

答案 2 :(得分:6)

Swift 4版本:

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