Подтвердить что ты не робот

Обнаруживать, если приложение в фоновом режиме или переднем плане быстро

есть ли способ узнать состояние моего приложения, если оно находится в фоновом режиме или на переднем плане. Спасибо

4b9b3361

Ответ 1

[UIApplication sharedApplication].applicationState возвращает текущее состояние приложений,

  • UIApplicationStateActive
  • UIApplicationStateInactive
  • UIApplicationStateBackground

нам нужно позвонить как

Свифт 3 и выше

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

Объективный C

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

Ответ 2

Swift 3

  let state: UIApplicationState = UIApplication.shared.applicationState

            if state == .background {

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

                // foreground
            }

Ответ 3

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

вы можете добавить логическое значение, когда приложение вводится в фоновом режиме или вводится на переднем плане. У вас есть эта информация, используя делегат приложения.

Согласно документации Apple, возможно, вы также можете использовать свойство mainWindow вашего приложения или активное свойство состояния приложения.

Документация NSApplication

Обсуждение Значение этого свойства равно нулю, если файл раскадровки приложений или файл nib еще не завершил загрузку. Это может быть и ноль, когда приложение неактивно или скрыто.

Ответ 5

Если кто-то хочет это в 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
    }

для быстрой 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
}