[iOS] Application lifecycle メモ

2010/07/26

きんくまです。iPhoneの開発メモがしばらく続くと思います。
挙動についてのメモです。

■アプリケーション起動(初回)
1) application:didFinishLaunchingWithOptions
2) applicationDidBecomeActive

■homeボタンを押したとき
1) applicationWillResignActive
2) applicationDidEnterBackground

■もう一度アプリケーションを起動したとき(2回目以降)
1) applicationWillEnterForeground
2) applicationDidBecomeActive

それぞれの役割

中に書いてあるコメントを訳してみる

■application:didFinishLaunchingWithOptions
アプリケーションの起動時。
viewControllerのviewをwindowにaddする

■applicationWillResignActive

    /*
     Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
     Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
     */

アプリケーションがアクティブからインアクティブな状態に移行するときに呼ばれる。
一時的な中断(電話がかかってきたりSMSメッセージが届いたりといった)ときや、ユーザーがアプリケーションを終了して、バックグラウンド状態になる際におこる。
このメソッドは継続中のタスクをポーズするのに使ってください。タイマーをやめたり、OpenGL ESのフレームレートを下げたりして。
ゲームはこのメソッドをゲームの中断に使用すべきです。

■applicationDidEnterBackground

    /*
     Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
     If your application supports background execution, called instead of applicationWillTerminate: when the user quits.
     */

このメソッドは共有リソースのreleaseに使ってください。ユーザーデータの保存、タイマーの中断、また後でアプリが終了するのに備えて、アプリケーションの状態をもとに戻すために必要な現在の情報の保存。
アプリケーションがバックグラウンドをサポートする場合、ユーザーが終了するときに、applicationWillTerminateの代わりに呼んでください。

■applicationWillEnterForeground

    /*
     Called as part of  transition from the background to the inactive state: here you can undo many of the changes made on entering the background.
     */

バックグラウンドからインアクティブな状態に移るときに呼ばれます。ここで、バックグラウンドによる多くの変更をアンドゥすることができます。

■applicationDidBecomeActive

    /*
     Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
     */

アプリケーションがインアクティブだった間に中断していた(または開始していなかった)タスクを再開します。もしアプリケーションが前にバックグラウンドだった場合、ユーザーインターフェースのリフレッシュをオプションですることができます。

■applicationWillTerminate

    /*
     Called when the application is about to terminate.
     See also applicationDidEnterBackground:.
     */

アプリケーションが中断する際に呼ばれます。applicationDidEnterBackgroundを参照してください。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

LINEスタンプ作りました!
毎日使える。とぼけたウサギ。LINEスタンプ販売中! 毎日使える。とぼけたウサギ

ページトップへ戻る