196

アプリがバックグラウンドで実行されているかどうかを確認したい。

の:

locationManagerDidUpdateLocation {
    if(app is runing in background){
        do this
    }
}
4

8 に答える 8

180
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateBackground || state == UIApplicationStateInactive)
{
   //Do checking here.
}

これは、問題の解決に役立つ場合があります。

以下のコメントを参照してください-非アクティブはかなり特殊なケースであり、アプリがフォアグラウンドで起動されていることを意味する場合があります。それはあなたの目標に応じてあなたにとって「背景」を意味するかもしれないし、意味しないかもしれません...

于 2013-02-05T06:42:45.537 に答える
24

迅速なバージョン:

let state = UIApplication.shared.applicationState
if state == .Background {
    print("App in Background")
}
于 2016-03-29T12:21:57.727 に答える
8

アプリケーションの状態について「尋ねる」のではなく、コールバックを受け取りたい場合は、次の 2 つのメソッドを で使用しますAppDelegate

- (void)applicationDidBecomeActive:(UIApplication *)application {
    NSLog(@"app is actvie now");
}


- (void)applicationWillResignActive:(UIApplication *)application {
    NSLog(@"app is not actvie now");
}
于 2015-03-04T11:14:10.983 に答える