I would like to find a way to see what app is running in foreground or if the home screen is displayed when a local notification from my app show up. For example i want to have different actions if there is in homescreen or in someone else app. I tried to use processed and pid but the pid is generated hen the app starts and not the last time the app is used. Any idea? thanks
Determine if an app is running in the foreground when a notification is received on iOS
Asked Answered
As described in the push notification documentation you can read [[UIApplication sharedApplication] applicationState]
when you receive the notification to determine whether your app is in foreground, inactive (it's visible but a dialog like the WiFi chooser is in front) or in background.
i want to know if anither app is running in foreground like camera or ipod or notes –
Selfrenunciation
So, what part of my answer do you have trouble with? If you read
[[UIApplication sharedApplication] applicationState]
it tells you whether your app is foreground or not. –
Pragmatism Yes. this is for my app. how I would now exactly what app was before mine?IF was Camera for example or an appstore app? –
Selfrenunciation
There is no way to get this information. You only know whether your app is in foreground or not. –
Pragmatism
Just to have a copy-paste code available for others:
if([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive)
{
//App is in foreground. Act on it.
}
p1us 0ne for the copy paste –
Musicianship
Swift 5 version:
import UIKit
let isForeground = UIApplication.shared.applicationState == .active
It's probably worth noting you need
import UIKit
since it's not obvious where the identifier UIApplication
comes from. –
Parry © 2022 - 2024 — McMap. All rights reserved.