我想找到一种方法,可以查看当我的应用程序弹出本地通知时,前台正在运行的应用程序或是否显示了主屏幕。例如,我想要有不同的操作,如果在主屏幕或在其他人的应用程序中。 我尝试使用处理和pid,但pid是在应用程序启动时生成的,而不是最后一次使用应用程序时生成的。 有什么想法吗? 谢谢
我想找到一种方法,可以查看当我的应用程序弹出本地通知时,前台正在运行的应用程序或是否显示了主屏幕。例如,我想要有不同的操作,如果在主屏幕或在其他人的应用程序中。 我尝试使用处理和pid,但pid是在应用程序启动时生成的,而不是最后一次使用应用程序时生成的。 有什么想法吗? 谢谢
如推送通知文档所述,当您收到通知时,可以读取[[UIApplication sharedApplication] applicationState]
来确定您的应用程序是在前台、处于非活跃状态(它是可见的但是前面有像WiFi选择器这样的对话框)还是在后台。
只是为了让其他人能够复制粘贴代码:
if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
//App is in foreground. Act on it.
}
Swift 5版本:
import UIKit
let isForeground = UIApplication.shared.applicationState == .active
UIKit
,因为不明显的是UIApplication
标识符的来源。 - SimpleJ
[[UIApplication sharedApplication] applicationState]
,它会告诉你你的应用程序是在前台还是后台。 - DarkDust