iOS4でマルチタスキングを実現するときの注意点まとめ
アプリ側の責任ですね。キーボードの切り替えも。 RT @marvelph: !!! RT @narumij: あれ、マルチタスキング中に言語切り替えるとどーなるんだろ?
2010-06-27 08:33:42補足です。HIG( http://bit.ly/bWUjV6 )によれば「編集中状態などであれば終了させておくべき」とのことです。 RT @marvelph: !!! RT @narumij: あれ、マルチタスキング中に言語切り替えるとどーなるんだろ?
2010-06-27 08:42:38アプリがバックグラウンドに入る場合は、これまでwillTerminateで呼んでいた保存処理を呼んでおかないと。そのときのdelegateメソッドはapplicationDidEnterBackground:。
2010-06-27 08:59:05バックグラウンド時にメモリ警告をシミュレートしてみたけれど、applicationDidReceiveMemoryWarning:は呼ばれなかった。うむむ、安易な実装で「iOS4対応」っていうのは憚れるなあ。
2010-06-27 09:14:43バックグラウンドにした後は、Application Delegateが殆ど来ていない。そうなるとデータ保存のタイミングは applicationWillTerminate:だけでは絶対に駄目か。
2010-06-27 09:23:03バックグラウンド化で呼ばれるデリゲートメソッドはapplicationWillResignActive:とapplicationDidEnterBackground:の2つだけど、データ保存のタイミングは後者。なぜならホームボタン2度押しでも前者が呼ばれるから。
2010-06-27 09:26:10一方UIViewControllerはというと、viewWillDisappear:はバックグラウンドに回るときも、ホームボタン2度押しでも呼ばれなかった。まだ検証不足だけれど、アプリケーションの動作状況に影響は受けない、ということかな。
2010-06-27 09:32:22マルチタスキングを掌中に収めるまではUIApplicationExitsOnSuspendをTRUEにしておくのが吉だと思った。使っていただく方に迷惑をかけかねないし、そもそもマルチタスキングの必要性があるケースは少ない。
2010-06-27 09:38:18日時をリスト表示してたりする場合は、ビューがアンロードされていなくても表示の度にリロードする必要がありそうですね。RT @shiki_hellkite: アプリ側は考える事が増えそうですね。 RT @hkato193 アプリ側の責任ですね 。キーボードの切り替えも。 …
2010-06-27 10:03:37iOS4 のアプリケーションの状態遷移をまとめてみました。http://bit.ly/cHtbIY [@ytka]
2010-06-27 13:16:03[iPhone技術情報][iOS4][SysStats Monitor][SysStats Lite]iOS4でバックグラウンド化されているアプリを確認する方法 http://bit.ly/bBVzD5
2010-06-27 20:07:20@tYabee blogで、記事とアプリのご紹介いただきありがとうございます! iOS4のマルチタスク機能は、なかなかわかりにくいので、まとめてみました。
2010-06-27 23:21:06@k_katsumi ありがとうございます。件の呟きをした後に、私もこのページを見て「あ」と思いました。でも、HIGの方にも「そうとも取れる」という表現があったので、そのまま流してしまいました・・・
2010-06-28 09:37:11[iPhone4][multitasking] iPhone4で、アプリをたくさん起動したあとのメモリ消費の変化。けっこう消費しているなあという感想。 B! http://bit.ly/91TV5I
2010-06-28 09:51:55iPhone4でマルチタスクに対応したゲームが突然死ぬとなけるので、 FreeMemory Liteで定期的に他のタスクを殺して空きメモリを確保しておくとよいかも。
2010-06-28 15:21:58@Seasons このアプリで解放(というのも何ですが)するメモリ領域で、他アプリの突然死を防げそうですか?
2010-06-28 15:23:29@hkato193 このアプリで空きメモリを増やしておけば、足りなくなった時にバックグラウンドタスク=例えばゲーム が殺されずに済むかなぁーと。
2010-06-28 15:25:38@Seasons なるほどです。ちなみにバックグラウンドタスクが虐殺されるのって、どういうタイミングなんでしょうね。シミュレータでテストさせたりできないか、あるいは消されるタイミングを検知できないかなと。
2010-06-28 15:32:57@hkato193 確か、マルチタスクのドキュメントにKillされる条件が掲載されていたはずです。 シミュレートする方法は、載っていなかったと思いますが、そのKillされる条件をみたすテストプログラムを書けば良さそうですね。
2010-06-28 15:36:27@Seasons おろろ、すみませんその項を見てませんでした…orz。確かにテストプログラムを作っておくべきですね。失礼しました
2010-06-28 15:40:09