iPad Techfirm Lab

One more thing…

      こんにちは!YuiChiLoです         

アプリ終了時の処理 〜 iOS4 & iPhone SDK 4 対応 〜

By YuiChiLo

      

iOS4からマルチタスクが導入されたことにより、アプリ終了時に呼ばれるデリゲートメソッドが変更されました。
保存処理などをそこで行っていたアプリは変更する必要があります。


※(注意)一部訂正しました。

これまではアプリ起動中にホームボタンをクリックすれば原則的にはアプリは終了していましたが、マルチタスクの導入によりホームボタンをクリックしただけではアプリは閉じるだけで終了はせず、一部機能を除き休止状態となります。

実際にアプリを終了させるためには、ホームボタンをダブルクリックしてタスク一覧からアプリを長押し削除します。

このようにマルチタスクの導入によりアプリの終了に関する操作が以前とは異なっているように、内部の処理も変更しています。

iPhone SDK 3 ではアプリ終了時(ホームボタンクリック)にUIApplicationDelegateの

//
- (void)applicationWillTerminate:(UIApplication*)application;
//

が呼ばれていたのですが、iPhone SDK 4ではアプリを閉じた(ホームボタンクリック)だけでは呼ばれず、タスク一覧から長押し削除した場合にも呼ばれません。

そこで、アプリを閉じた場合(ホームボタンクリック)に保存処理をするように変更します。

閉じたときに呼ばれるUIApplicationDelegateのメソッドが以下です。

//
- (void)applicationWillResignActive:(UIApplication*)application;
//
- (void)applicationDidEnterBackground:(UIApplication *)application;
//

これらのメソッドに処理を移す必要があります。

また、CoreDataを使う新規プロジェクトを作成した場合も保存処理のコードがapplicationWillTerminateに自動で記述されているのでそちらも場合によっては変更する必要があるかもしれません。

※ 特にiPhone SDK 4でビルドする必要がない場合、iPhone SDK 3でビルドすれば以前同様の挙動となり、iPhone4 のiOS4でも動作します。

※(訂正) Appleにより最新のSDKでビルドすることが推奨されています。

Category: Tips, iPhone

Tagged: ,

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

5 Tweets

6 Responses

  1. [...] アプリ終了時の処理 〜 iOS4 & iPhone SDK 4 対応 〜 | iPad Techfirm Lab 2011年3月22日 iPhone/iPad開発, JavaScript Titanium   [...]

Leave a Reply

Additional comments powered by BackType

カレンダー

2012年2月
« 11月    
 12345
6789101112
13141516171819
20212223242526
272829  

人気エントリー