【问题标题】:Determine if an app is running in the foreground when a notification is received on iOS在 iOS 上收到通知时确定应用程序是否在前台运行
【发布时间】:2012-01-28 10:32:07
【问题描述】:

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

【问题讨论】:

    标签: iphone ios multitasking foreground


    【解决方案1】:

    push notification documentation 中所述,您可以在收到通知时阅读[[UIApplication sharedApplication] applicationState],以确定您的应用程序是处于前台、非活动状态(它是可见的,但像 WiFi 选择器这样的对话框在前面)还是在后台。

    【讨论】:

    • 我想知道其他应用程序是否在前台运行,例如相机、ipod 或笔记
    • 那么,您对我的回答的哪一部分有疑问?如果您阅读[[UIApplication sharedApplication] applicationState],它会告诉您您的应用是否在前台。
    • 是的。这是给我的应用程序的。我现在怎么知道我之前的应用是什么?例如是相机还是应用商店应用?
    • 无法获取此信息。你只知道你的应用是否在前台。
    【解决方案2】:

    只是为了让其他人可以复制粘贴代码:

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

    【讨论】:

    • p1us 0ne 用于复制粘贴
    【解决方案3】:

    Swift 5 版本:

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

    【讨论】:

    • 可能值得注意的是您需要import UIKit,因为标识符UIApplication 的来源并不明显。
    猜你喜欢
    • 1970-01-01
    • 2014-10-21
    • 2020-04-27
    • 2017-05-11
    • 2019-07-24
    • 2018-06-15
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多