Search code examples
iosswiftlifecycle

Detect if the application in background or foreground


Is there any way to know the state of my application if it is in background mode or in foreground?


Solution

  • [UIApplication sharedApplication].applicationState will return current state of applications such as:

    • UIApplicationStateActive
    • UIApplicationStateInactive
    • UIApplicationStateBackground

    or if you want to access via notification see UIApplicationDidBecomeActiveNotification

    Swift 3+

    let state = UIApplication.shared.applicationState
    if state == .background || state == .inactive {
        // background
    } else if state == .active {
        // foreground
    }
    
    switch UIApplication.shared.applicationState {
        case .background, .inactive:
            // background
        case .active:
            // foreground
        default:
            break
    }
    

    Objective C

    UIApplicationState state = [[UIApplication sharedApplication] applicationState];
    if (state == UIApplicationStateBackground || state == UIApplicationStateInactive) {
        // background
    } else if (state == UIApplicationStateActive) {
        // foreground
    }