wake-up-neo.com

Kann ich überprüfen, ob sich die iOS-App im Hintergrund befindet?

Ich möchte überprüfen, ob die App im Hintergrund ausgeführt wird.

Im:

locationManagerDidUpdateLocation {
    if(app is runing in background){
        do this
    }
}
170
bobby grenier

App-Delegierter erhält Rückrufe, die Statusübergänge angeben. Sie können es basierend darauf verfolgen.

Auch die applicationState -Eigenschaft in UIApplication gibt den aktuellen Status zurück.

[[UIApplication sharedApplication] applicationState]
277
DavidN
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateBackground || state == UIApplicationStateInactive)
{
   //Do checking here.
}

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 im Vordergrund gestartet wird. Das kann oder kann nicht "Hintergrund" für Sie bedeuten, abhängig von Ihrem Ziel ...

172
Aswathy Bose

Swift

    let state = UIApplication.shared.applicationState
    if state == .background {
        print("App in Background")
    }
24
Meet

Schnelle Version:

   let state = UIApplication.sharedApplication().applicationState
            if state == .Background {
                print("App in Background")
             }
18
ioopl

Wenn Sie Rückrufe erhalten möchten, anstatt nach dem Anwendungsstatus zu fragen, verwenden Sie diese beiden Methoden in Ihrem AppDelegate:

- (void)applicationDidBecomeActive:(UIApplication *)application {
    NSLog(@"app is actvie now");
}


- (void)applicationWillResignActive:(UIApplication *)application {
    NSLog(@"app is not actvie now");
}
8
klimat

Schnell 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
    }
3
Shakeel Ahmed

Eine Swift 4.0 Erweiterung, um den Zugriff etwas zu erleichtern:

import UIKit

extension UIApplication {
    var isBackground: Bool {
        return UIApplication.shared.applicationState == .background
    }
}

So greifen Sie über Ihre App zu:

let myAppIsInBackground = UIApplication.shared.isBackground

Wenn Sie nach Informationen zu den verschiedenen Status suchen (active, inactive und background), finden Sie die Apple-Dokumentation hier .

1
CodeBender