iOS4でマルチタスキングを実現するときの注意点まとめ

iOS4ではいよいよマルチタスキングを実現できるようになったわけですが、開発者にとっては注意しなければならないことが圧倒的に多くなったのも事実です。 個人的に調べたときの呟きメモ、それにTL上で気になった情報をまとめましたので、参考にしてみてください。 補足などはぜひコメントへ!!
38
Norio Nomura @norio_nomura

@Seasons @hkato193 オーガナイザの Device Logs に type: Low Memory ってのが出てて、どのプロセスが一番大きくて、どのプロセスが jettisoned されたか見られますね。

2010-06-28 15:41:18
Seasons @Seasons

@hkato193 バックグラウンドに入る時にやっておくことが細かく書かれているのでご一読を :-)

2010-06-28 15:41:38
Norio Nomura @norio_nomura

大辞林に jettison 載ってなかった。

2010-06-28 15:42:55
Norio Nomura @norio_nomura

jettison/dʒétəsn/ 名 詞•U(緊急時に船飛行機を軽くするための)投げ荷, 船外[機外]投棄. ━━動 詞•他動詞 1 〈積み荷を〉投げ荷する;〈重荷じゃまなものを〉投げ捨てる, 放棄する. 2〘トランプ〙〈不要なカードを〉捨てる.

2010-06-28 15:43:15
Kazuyuki Imada @kimada

@hkato193 @Seasons とりあえず、メモリ解放(?)アプリは、メモリをたくさん確保したときに、バックグラウンドプロセスがkillされる副作用を利用しているので、そういうアプリを実行すれば、シミュレートできると思います(笑)

2010-06-28 15:56:16
Hirohito Kato ⌘ @hkato193

@kimada @Seasons @norio_nomura そうすると「メモリ解放(?)アプリをゲーム中に実行する」のは自殺行為ですね。

2010-06-28 16:01:36
Kazuyuki Imada @kimada

@Seasons そうなんですw でも、あまり逼迫した状況だと、強制終了されてしまうので、アプリでは何もできないかもです(苦笑) あとは、写真撮影あたりだと、もう少し緩やかにメモリを圧迫してくれるかもしれませんね。

2010-06-28 16:02:19
Hirohito Kato ⌘ @hkato193

メモリ解放(?)アプリ系は、「このアプリを使ったところ、他のアプリが挙動不審になります」的なやっかみを受けてしまいそうな予感。レビューが荒れそうだ・・・

2010-06-28 16:03:06
Seasons @Seasons

@hkato193 メモリ解放をゲーム中は、NGですが、他のアプリを消して空きメモリを確保して、ゲーム復帰後にメモリ足らなくて落ちるとかをバックグラウンド中に落とされる可能性を減らす事はできると思います。

2010-06-28 16:03:53
Kazuyuki Imada @kimada

@hkato193 @Seasons @norio_nomura 危険な行為だと思います。電話アプリでさえkillされることもあるので、特定のアプリだけを、特別扱いはしてくれないですねー。

2010-06-28 16:05:30
Hirohito Kato ⌘ @hkato193

@Seasons ところが、ユーザーからはどのアプリがマルチタスク対応かが分からないUIなんですよね。ちと怖いです。

2010-06-28 16:09:44
Seasons @Seasons

@kimada @norio_nomura @hkato193 ですね。特別扱いは難しいですが特定のアプリ以外を殺して、空きメモリを増やしておくことで殺される可能性が減るといった感じでしょうか。iOS的には。

2010-06-28 16:10:33
Seasons @Seasons

@hkato193 しばらくこのFree Memoryで空きメモリに気を配りながら、PVZゲームのリジュームをどこまで保護できるかトライしてみますw

2010-06-28 16:12:12
Hirohito Kato ⌘ @hkato193

@Seasons さっそくメモリ解放アプリが違う用途で使われ始めていますねw。私も調べてみますけれども、何かあれば情報交換させてください(この辺りの注意事項が、例の件で書くべき内容になりそうですし)

2010-06-28 16:15:58
Kazuyuki Imada @kimada

@Seasons @norio_nomura @hkato193 面倒ですが、明らかに殺してもいいアプリを、ホームボタンのダブルクリックで出て来る一覧から選んで削除するのが、安全な方法かもですねー。

2010-06-28 16:16:44
Hirohito Kato ⌘ @hkato193

@kimada @Seasons @norio_nomura それが一番安全な方法な気がします。マルチタスク対応、やっぱり難しいですね・・・。

2010-06-28 16:18:29
Seasons @Seasons

@hkato193 @norio_nomura @kimada 殺された場合、再起動した際にapplicationDidFinishedLaunchingで前回の殺された状況がoptionで渡ってくるとか書いてあったはずなのでその辺もハンドリングしないといけないという・・・。

2010-06-28 16:20:07
Kazuyuki Imada @kimada

@Seasons なるほど。いろいろありそうですねー。あとで、Supporting Multitasking In Your Applicationsをじっくり読みます!

2010-06-28 16:29:57
みはbot @miha_bot

iOS4のマルチタスキングを試してみたのこと - えぽのみかる・ぱれす: iPhone, iOS4, Obj-C1. 普通に作ってみる ラベルの数字を1秒おきにカウントアップするアプリを作ってみます。本来ならば起動時刻からの経過... http://bit.ly/aIqjwl

2010-06-28 18:09:42
kishikawa katsumi @k_katsumi

@hkato193 後々ブログに書こうと思います。ちなみにバックグラウンド中の設定の変更はノーティフィケーションが来ます。

2010-06-28 19:49:36
Hirohito Kato ⌘ @hkato193

@k_katsumi 通知、コールバック関数(サウンド周り)、など何が届くかも、タイミングを纏めた方が良さそうですね。私も調べます。

2010-06-28 19:53:09