Je veux vérifier si l'application est en cours d'exécution en arrière-plan.
Dans:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
Le délégué de l'application reçoit des rappels indiquant les transitions d'état. Vous pouvez suivre cela en fonction de cela.
De même, la propriété applicationState dans UIApplication renvoie l'état actuel.
[[UIApplication sharedApplication] applicationState]
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateBackground || state == UIApplicationStateInactive)
{
//Do checking here.
}
Cela peut vous aider à résoudre votre problème.
Voir le commentaire ci-dessous - inactif est un cas assez particulier, et peut signifier que l'application est en cours de lancement au premier plan. Cela peut ou peut ne pas signifier "fond" pour vous en fonction de votre objectif ...
Swift
let state = UIApplication.shared.applicationState
if state == .background {
print("App in Background")
}
Version rapide:
let state = UIApplication.sharedApplication().applicationState
if state == .Background {
print("App in Background")
}
Si vous préférez recevoir des rappels au lieu de "demander" à propos de l'état de l'application, utilisez ces deux méthodes dans votre AppDelegate
:
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"app is actvie now");
}
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"app is not actvie now");
}
Swift 4
let state = UIApplication.shared.applicationState
if state == .background {
print("App in Background")
//MARK: - if you want to perform come action when app in background this will execute
//Handel you code here
}
else if state == .foreground{
//MARK: - if you want to perform come action when app in foreground this will execute
//Handel you code here
}
Une extension Swift 4.0 pour en faciliter l’accès:
import UIKit
extension UIApplication {
var isBackground: Bool {
return UIApplication.shared.applicationState == .background
}
}
Pour accéder à partir de votre application:
let myAppIsInBackground = UIApplication.shared.isBackground
Si vous recherchez des informations sur les différents états (active
, inactive
et background
), vous pouvez trouver le documentation Apple ici .