アプリがバックグラウンドで実行されているかどうかを確認します。
に:
locationManagerDidUpdateLocation {
if(app is runing in background){
do this
}
}
アプリのデリゲートは、状態遷移を示すコールバックを取得します。それに基づいて追跡できます。
また、UIApplicationの applicationState プロパティは現在の状態を返します。
[[UIApplication sharedApplication] applicationState]
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if (state == UIApplicationStateBackground || state == UIApplicationStateInactive)
{
//Do checking here.
}
これは、問題の解決に役立つ場合があります。
以下のコメントを参照してください-非アクティブはかなり特殊なケースであり、アプリがフォアグラウンドで起動される過程にあることを意味します。それはあなたの目標に応じてあなたにとって「背景」を意味するかもしれないし、意味しないかもしれません...
Swift
let state = UIApplication.shared.applicationState
if state == .background {
print("App in Background")
}
迅速なバージョン:
let state = UIApplication.sharedApplication().applicationState
if state == .Background {
print("App in Background")
}
アプリケーションの状態について「尋ねる」のではなくコールバックを受け取りたい場合は、AppDelegate
で次の2つのメソッドを使用します。
- (void)applicationDidBecomeActive:(UIApplication *)application {
NSLog(@"app is actvie now");
}
- (void)applicationWillResignActive:(UIApplication *)application {
NSLog(@"app is not actvie now");
}
スイフト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
}
Swift 4.0拡張機能により、アクセスしやすくなりました。
import UIKit
extension UIApplication {
var isBackground: Bool {
return UIApplication.shared.applicationState == .background
}
}
アプリ内からアクセスするには:
let myAppIsInBackground = UIApplication.shared.isBackground
さまざまな状態(active
、inactive
、およびbackground
)に関する情報を探している場合は、 Appleのドキュメント を見つけることができます。