Ich möchte überprüfen, ob die App im Hintergrund ausgeführt wird.
Im:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
ios
objective-c
uiapplicationdelegate
application-lifecycle
ios-background-mode
Bobby Grenier
quelle
quelle
locationManager:didUpdateToLocation:fromLocation:
Methode?Antworten:
Der App-Delegat erhält Rückrufe, die Statusübergänge anzeigen. Sie können es basierend darauf verfolgen.
Auch die Eigenschaft applicationState in UIApplication gibt den aktuellen Status zurück.
quelle
[[UIApplication sharedApplication] applicationState] != UIApplicationStateActive
ist besser, da UIApplicationStateInactive fast gleichbedeutend mit Hintergrund ist ...Dies kann Ihnen bei der Lösung Ihres Problems helfen.
Siehe Kommentar unten - Inaktiv ist ein ziemlich spezieller Fall und kann bedeuten, dass die App gerade in den Vordergrund gestellt wird. Das kann für Sie "Hintergrund" bedeuten oder auch nicht, abhängig von Ihrem Ziel ...
quelle
Swift 3
quelle
Schnelle Version:
quelle
Wenn Sie Rückrufe erhalten möchten, anstatt nach dem Anwendungsstatus zu fragen, verwenden Sie diese beiden Methoden in Ihrem
AppDelegate
:quelle
schnell 5
quelle
Swift 4+
quelle
Eine Swift 4.0-Erweiterung, die den Zugriff etwas erleichtert:
So greifen Sie über Ihre App zu:
Wenn Sie Informationen zu den verschiedenen Staaten suchen (
active
,inactive
undbackground
), können Sie das finden Apple - Dokumentation hier .quelle