【Swift】フォア/ バックグラウンドを検知
どうも、ねこきち(@nekokichi1_yos2)です。
ユーザーがアプリ起動中に
- ホーム画面
- スリープ画面
とアプリ間を行き来してる時も、処理を継続させたい場合があります。
つまり、
- フォアグラウンド(アプリ画面)
- バックグラウンド(アプリ画面外)
における処理の実装ですが、容易に実現できます。
解説
Xcodeで新規プロジェクトに元からある、UISceneDelegate.swift、で行います。
フォアグラウンド
フォアグラウンドへの検知は、
func sceneWillEnterForeground(_ scene: UIScene) {
}
func sceneDidBecomeActive(_ scene: UIScene) { }
sceneWillEnterForeground()は、アプリ画面に戻ってくる直前、
sceneDidBecomeActive()は、アプリ画面に戻ってきた直後、に通過します。
バックグラウンド
バックグラウンドへの検知は、
func sceneWillResignActive(_ scene: UIScene) { }
func sceneDidEnterBackground(_ scene: UIScene) { }
sceneWillResignActive()は、アプリ画面から離れる直前、
sceneDidEnterBackground()は、アプリ画面から離れた直後、に通過します。
結果
ソースコード
import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { func sceneDidBecomeActive(_ scene: UIScene) { print("sceneDidBecomeActive") } func sceneWillResignActive(_ scene: UIScene) { print("sceneWillResignActive") } func sceneWillEnterForeground(_ scene: UIScene) { print("sceneWillEnterForeground") } func sceneDidEnterBackground(_ scene: UIScene) { print("sceneDidEnterBackground") } }