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

use*_*453 30 iphone foreground multitasking ios

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

Dar*_*ust 59

推送通知文档中所述,您可以[[UIApplication sharedApplication] applicationState]在收到通知时阅读,以确定您的应用程序是处于前台,非活动状态(可见但是WiFi选择器之类的对话框在前面)或后台.


Gun*_*nds 16

只是为其他人提供了一个复制粘贴代码:

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


Jan*_*ker 9

Swift 4版本:

let isForeground = UIApplication.shared.applicationState == .active
Run Code Online (Sandbox Code Playgroud)

  • 可能值得注意的是,您需要“import UIKit”,因为标识符“UIApplication”来自何处并不明显。 (3认同)