[AS3] AIRでのライフサイクルイベント

2014/06/19

こんにちは。きんくまです。

iOS, Androidでライフサイクルイベント(アプリが立ち上がった、バックグラウンドから立ち上がった)というのがあります。
それがAIRだとどうなるのか調べました。

AIRだとこんな感じにイベントがとれます

NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, appActivateHandler);
NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, appDeactivateHandler);
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, appInvokeEventHandler);

ざっくりいうとActivateはバックグラウンドから立ち上がったとき、Deactivateはバックグラウンドに移行するとき、InvokeEventはアプリが立ち上がったときです。

で、調べた結果はこんな感じになりました。

air_lifecycle

同じマスに複数のイベントが書いてある場合は、上から順番に実行されています。

URLスキームで立ち上げるというのは、別アプリからAIRアプリ内に登録したスキームを使って立ち上げたということです。

InvokeEventはReasonというのがあります。どういう理由で立ち上がったかという意味です。
ここでは、StandardとOpenURLの2種類がありました。
OpenURLのときは、argumentsから実行されたのURLを読み取ることができます。

my.app.customurl://path/foo?bar=hoge&fuga=aaa

みたいな形です。

>> 参考 arguments

また、上を見ると分かるのですが、ActivateイベントがiOSだとない場合があったり、InvokeEventとActivateイベントがiOSとAndroidで実行順が入れ替わってたりしました。

起動時になんかやる必要がある場合は、このあたりに気をつければ大丈夫かなと思いました。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る