【Swift】アプリがバックグラウンド・フォアグラウンドに移動したことを検知する

今回は、iOS アプリをバックグラウンド、もしくはフォアグラウンドに移動した時に、それをアプリから検知する方法についてです。

参考にさせていただいた記事はこちらから。

【Xcode/Swift】バックグランド・フォアグラウンド状態を検知・判定する方法 | iOS-Docs
https://ios-docs.dev/backgournd-foreground/

SceneDelegate.swift に記述する方法と、NotificationCenter を使って ViewController.swift に記述する方法があったのですが、今回はアプリの仕様上、ViewController に記述する方法で実装しました。

 

実装方法ですが、まず、ViewController.swiftViewDidLoad() に下記のコードを追加します。

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 でアプリがバックグラウンド・フォアグラウンドに移動したことを検知する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG