есть ли способ узнать состояние моего приложения, если оно находится в фоновом режиме или на переднем плане. Спасибо
Обнаруживать, если приложение в фоновом режиме или переднем плане быстро
Ответ 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 вашего приложения или активное свойство состояния приложения.
Обсуждение Значение этого свойства равно нулю, если файл раскадровки приложений или файл 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
}