Chcę sprawdzić, czy aplikacja działa w tle.
W:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
ios
objective-c
uiapplicationdelegate
application-lifecycle
ios-background-mode
Bobby Grenier
źródło
źródło
locationManager:didUpdateToLocation:fromLocation:
metodzie?Odpowiedzi:
Delegat aplikacji otrzymuje wywołania zwrotne wskazujące przejścia stanu. Na tej podstawie możesz go śledzić.
Również właściwość applicationState w UIApplication zwraca bieżący stan.
źródło
[[UIApplication sharedApplication] applicationState] != UIApplicationStateActive
jest lepiej, ponieważ UIApplicationStateInactive jest prawie tak samo jak w tle ...Może to pomóc w rozwiązaniu problemu.
Zobacz komentarz poniżej - nieaktywny jest dość szczególnym przypadkiem i może oznaczać, że aplikacja jest właśnie uruchamiana na pierwszym planie. To może, ale nie musi, oznaczać „tło” dla ciebie w zależności od twojego celu ...
źródło
Szybki 3
źródło
Wersja szybka:
źródło
Jeśli wolisz odbierać połączenia zwrotne zamiast „pytać” o stan aplikacji, użyj tych dwóch metod
AppDelegate
:źródło
szybki 5
źródło
Swift 4+
źródło
Rozszerzenie Swift 4.0, aby ułatwić dostęp do niego:
Aby uzyskać dostęp z poziomu aplikacji:
Jeśli szukasz informacji na temat różnych państw (
active
,inactive
ibackground
), można znaleźć w dokumentacji firmy Apple tutaj .źródło