Swiftで遊ぼう! - 992 - Preparing Your App to Run in the Background
Preparing Your App to Run in the Background | Apple Developer Documentation
5つのアプリケーションの状態から5つのトランザクションを経て状態が変化します。Activeなアプリケーションからバックグラウンドに移るときに直接移行できないって以前話しました。
まずdeactivationに入らないといけないので、このときapplicationWillResignActive(_:) が呼ばれて、次の4つのタスクが実行されます。
- ユーザーデータをディスクに保存してオープンしているファイルはすべて閉じられます。
- ユーザーのデータを保持する重要なタスクだけこなします。ディスパッチ・キュー、オペレーション・キューも中断して新しい実行タスクは開始されません。
- アクティブなタイマーは止められます。
- ゲームプレーも中断します。
これはディアクティベーションのステップで、次はバックグラウンドに移るんですが、applicationDidEnterBackground(_:) が呼ばれます。このメソッドはアプリがバックグラウンドで動き始めているとうシグナルです。次にサスペンド状態に入る前に次のいくつかのステップを踏みます。