web-dev-qa-db-ja.com

iOSアプリがバックグラウンドにあるかどうかを確認する方法はありますか?

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

に:

locationManagerDidUpdateLocation {
    if(app is runing in background){
        do this
    }
}
170
bobby grenier

アプリのデリゲートは、状態遷移を示すコールバックを取得します。それに基づいて追跡できます。

また、UIApplicationの applicationState プロパティは現在の状態を返します。

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

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

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

172
Aswathy Bose

Swift

    let state = UIApplication.shared.applicationState
    if state == .background {
        print("App in Background")
    }
24
Meet

迅速なバージョン:

   let state = UIApplication.sharedApplication().applicationState
            if state == .Background {
                print("App in Background")
             }
18
ioopl

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

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


- (void)applicationWillResignActive:(UIApplication *)application {
    NSLog(@"app is not actvie now");
}
8
klimat

スイフト4

let state = UIApplication.shared.applicationState
    if state == .background {
        print("App in Background")
        //MARK: - if you want to perform come action when app in background this will execute 
        //Handel you code here
    }
    else if state == .foreground{
        //MARK: - if you want to perform come action when app in foreground this will execute 
        //Handel you code here
    }
3
Shakeel Ahmed

Swift 4.0拡張機能により、アクセスしやすくなりました。

import UIKit

extension UIApplication {
    var isBackground: Bool {
        return UIApplication.shared.applicationState == .background
    }
}

アプリ内からアクセスするには:

let myAppIsInBackground = UIApplication.shared.isBackground

さまざまな状態(activeinactive、およびbackground)に関する情報を探している場合は、 Appleのドキュメント を見つけることができます。

1
CodeBender