今回は、iOS アプリをバックグラウンド、もしくはフォアグラウンドに移動した時に、それをアプリから検知する方法についてです。
参考にさせていただいた記事はこちらから。
【Xcode/Swift】バックグランド・フォアグラウンド状態を検知・判定する方法 | iOS-Docs
https://ios-docs.dev/backgournd-foreground/
SceneDelegate.swift に記述する方法と、NotificationCenter を使って ViewController.swift に記述する方法があったのですが、今回はアプリの仕様上、ViewController に記述する方法で実装しました。
実装方法ですが、まず、ViewController.swift の ViewDidLoad() に下記のコードを追加します。
NotificationCenter.default.addObserver(self,
                                        selector: #selector(foreground(notification:)),
                                        name: UIApplication.willEnterForegroundNotification,
                                        object: nil
)
NotificationCenter.default.addObserver(self,
                                        selector: #selector(background(notification:)),
                                        name: UIApplication.didEnterBackgroundNotification,
                                        object: nil
)
次に、下記の関数を追加します。
@objc func foreground(notification: Notification) {
    print("アプリがフォアグラウンドに移動しました")
}
@objc func background(notification: Notification) {
    print("アプリがバックグラウンドに移動しました")
}
アプリがフォアグラウンドになったタイミングで foreground() が呼ばれ、バックグラウンドなったタイミングで background() が呼ばれるので、あとはそれぞれに任意の処理を追加してください。
追加するコードは以上です。
実際に Simulator でアプリを実行し、バックグラウンド・フォアグラウンドに移動させたところ、問題なく動作しました!
初めて実装した機能でしたが、思ったよりも簡単でしたね。
以上、Swift でアプリがバックグラウンド・フォアグラウンドに移動したことを検知する方法についてでした。
ご参考になれば幸いです。
 
					         
               
                       
                