web-dev-qa-db-fra.com

Détecter si l'application en arrière-plan ou au premier plan en rapide

existe-t-il un moyen de connaître l'état de mon application si elle est en arrière-plan ou en avant-plan? Merci 

36
Mohammed Aboelwafa

[UIApplication sharedApplication].applicationState retournera l'état actuel des applications,

  • UIApplicationStateActive 
  • UIApplicationStateInactive
  • UIApplicationStateBackground

ou si vous souhaitez accéder via notification, voir UIApplicationDidBecomeActiveNotification

nous devons appeler comme 

Swift 3 et plus

 let state = UIApplication.shared.applicationState
    if state == .background  || state == .inactive{
        // background
    }else if state == .active {
        // foreground
    }

une autre option : 

  switch UIApplication.shared.applicationState{
        case .background,.inactive :
             // backgound
             break
        case .active :
         // foreground
        break
        default:
            break
        }

Objctive C

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

Swift 3

  let state: UIApplicationState = UIApplication.shared.applicationState

            if state == .background {

                // background
            }
            else if state == .active {

                // foreground
            }
13
dimo hamdy

Swift 4

let state = UIApplication.shared.applicationState
        if state == .background {
            print("App in Background")
        }else if state == .active {
            print("App in Foreground or Active")
        }
4
Ashu

vous pouvez ajouter un booléen lorsque l'application entre en arrière-plan ou au premier plan. Vous avez cette information en utilisant le délégué App.

Selon la documentation Apple, vous pouvez peut-être également utiliser la propriété mainWindow de votre application ou la propriété de statut actif de l'application.

Documentation NSApplication

Discussion La valeur de cette propriété est nil lorsque le chargement du storyboard ou du fichier nib de l’application n’est pas terminé. Il peut également être nul lorsque l'application est inactive ou masquée.

1
Atlandu

Si quelqu'un le veut dans Swift 3.0

switch application.applicationState {
    case .active:
        //app is currently active, can update badges count here
        break
    case .inactive:
        //app is transitioning from background to foreground (user taps notification), do what you need when user taps here
        break
    case .background:
        //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here
        break
    default:
        break
    }

pour Swift 4

switch UIApplication.shared.applicationState {
case .active:
    //app is currently active, can update badges count here
    break
case .inactive:
    //app is transitioning from background to foreground (user taps notification), do what you need when user taps here
    break
case .background:
    //app is in background, if content-available key of your notification is set to 1, poll to your backend to retrieve data and update your interface here
    break
default:
    break
}
1
Hamid Shahsavari