【Swift4】アプリがバックグラウンド状態かアクティブ状態か調べる方法【Objective-C】

2020年8月26日

アプリがバックグラウンド状態なのかアクティブ状態かを調べる方法です。

iOSアプリは基本的にはバックグラウンドにするとアプリで何か処理を行うことはできません。
しかし、BackgroundModesをオンにしているアプリの場合はバックグラウンド状態で処理を行うことができます。

このようにバックグラウンド状態でも処理ができるアプリの場合、バックグラウンド状態なのかアクティブ状態なのかを調べ処理を振り分けるといろいろとパフォーマンスもあがり便利です。
1行で調べられるので是非覚えておきましょう。

バックグラウンド状態かアクティブ状態か調べる方法

Swift4

if (UIApplication.shared.applicationState == .active) {
    print("Active");
} else if (UIApplication.shared.applicationState == .inactive)  {
    print("Inactive");
} else if (UIApplication.shared.applicationState == .background)  {
    print("Background");
}

Objective-C

if (UIApplicationStateActive == [[UIApplication sharedApplication] applicationState]) {
    NSLog(@"Active");
} else if (UIApplicationStateInactive == [[UIApplication sharedApplication] applicationState])  {
    NSLog(@"Inactive");
} else if (UIApplicationStateBackground == [[UIApplication sharedApplication] applicationState])  {
    NSLog(@"Background");
}