Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 989 - Managing Your App's Life Cycle

今までチュートリアル以外のAppleから公開されている正式なドキュメントを読み進めたことが無かったのでいい勉強になっています。

Managing Your App's Life Cycle | Apple Developer Documentation

App delegateの働きもなんとなく分かっていたつもりでした。しかし、このドキュメントを読んで全体像が把握できたような気がします。アプリケーションは常に5つの状態のどれか一つのステートに存在します。ステート間の移動(トランジション)には以下のような制限があります。

f:id:yataiblue:20171013183416j:plain

「Active」から「Background」に直接移ることはできないんです。こういう事も知らなかったです。トランジションにも5つのパターンがあります。

  1. Launch:「Not Running」→「Background」or「Inactive」
  2. Activation:「Inactive」→「Active」
  3. Deactivation:「Active」→「Inactive」
  4. Background execution:「Inactive」or「Not Running」→「Background」
  5. Termination:5つのいかなる状態からでも「Not Running」に移行

ここの説明を読んでいると「Suspend」への移行をコントロールできないみたいです。システムが自動的に制御しているようでSuspendからアプリへのNotify無しでNot Runningに移行もします。

今日はここまで。