Appleのアプリケーションライフサイクルについてdocumentationを読んで、さまざまなデバイスでのアプリケーションのライフサイクルを把握するためのテストを行いました。 (すべての2G以外のiOS 4.xを実行している)iOSアプリライフサイクル4/3GS/iPad vs 2G/3G
私はこの機能をサポートしていませんので、いくつかの対 "マルチタスキング" 対応デバイステストしてみた:
iPhone 2G/3Gアプリのライフサイクル:
(START)
- didFinishLunchingWithOptions
- applicationDidBecomeActive
(HOME PRESSED)
- applicationDidEnterBackground
- appWillTerminate
を
のiPad/iPhone 4アプリのライフサイクル:
(START)
- didFinishLunchingWithOptions
- applicationDidBecomeActive
(HOME PRESSED)
- appWillResignActive
- appDidEnterBackGround
(RESART app in the "Taskbar")
- appWillEnterForeGround
- appDidBecomeActive
私は「タスクバー」からアプリケーションを殺すためにしようとしましたが、デバッガはSIGKILLを受けました!あなたが殺すとそのようにアプリを実行するとどうなりますか?
「マルチタスク」対応デバイスではいつappWillTerminateが呼び出されますか?私の結果は正しいですか?
EDIT:appWillTerminateに関するAppleのドキュメントから
引用:アプリケーションは、単にバックグラウンドに移動するため、ユーザーがアプリケーションを終了するときにバックグラウンド実行をサポートするアプリケーションの場合
、このメソッドは、一般的に呼ばれていませんその場合は。ただし、このメソッドは、アプリケーションがバックグラウンドで実行されていて(中断されていない)、システムが何らかの理由で終了する必要がある状況で呼び出されることがあります。
「一般的には呼び出されない」とはどういう意味ですか? "システムはそれを終了する必要があります.."は、方法appWillTerminate
が呼び出されることを意味しますか?
これはほとんどの質問にお答えいただきありがとうございます。しかし、いつappWillTerminateが "マルチタスク"対応デバイス上で呼び出されますか? – Kami
マニュアルから引用して更新しました。 –
ああ私はその間に同じことをしました:D – Kami