2011年7月15日金曜日

AIR for iOSでアプリを完全に終了させる方法


ズッコケ4人のオープニング画面は、なんとなくこんな感じに…。
タイトルに Flash CS4から実装された3D回転を使ってみました。3D効果でなんとか高級っぽく!って思ったけど、なってねぇ〜!

iOS4になってから、サードパーティアプリにもマルチタスク化の対応が求められるようになりました。終了ボタンが押された時の仕様を、プロセス終了 or サスペンド処理のどちらかにする必要があります。たいていのアプリがプロセス終了を選択していると思います。

なんでか、AIR for iOSでアプリをパブリッシュすると、デフォルトではサスペンドするようになっています。これだと知らず知らずのうちに、多くのリソースがメモリに残ってしまうアプリを量産してしまう可能性があります。
これをスイッチひとつでプロセス終了仕様に変更したい!のですが、世の中そうなってないのが悲しいところです。
修正には、XMLファイルに設定を追記する必要があります。
FlashからiOSアプリをパブリッシュするのには、SWFファイルと、各種設定用のXMLファイルが必要となります。XMLファイルは flaファイル名-app.xml となって自動生成されます。このXMLをテキストエディタなどで開きます。
<InfoAdditions>
 <![CDATA[
  <key>UIDeviceFamily</key><array><string>1</string></array>
 ]]>
</InfoAdditions>
中にこんなような記述があると思いますが、CDATAの中に次のように新しい設定を加えます。
<InfoAdditions>
 <![CDATA[
  <key>UIDeviceFamily</key><array><string>1</string></array>
  <key>UIApplicationExitsOnSuspend</key><true/>
 ]]>
</InfoAdditions>

ここで注意して欲しいのが、Adobeのヘルプ には
<key>UIApplicationExitsOnSuspend</key><string>YES</string>
と書いてありますが、これだと何も変化が無かったので注意してください。
正解の情報は書籍 Flash CS5.5ではじめるiPhone/Androidアプリ開発入門 に書いてありました。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...