こんにちは。きんくまです。
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はアプリが立ち上がったときです。
で、調べた結果はこんな感じになりました。
同じマスに複数のイベントが書いてある場合は、上から順番に実行されています。
URLスキームで立ち上げるというのは、別アプリからAIRアプリ内に登録したスキームを使って立ち上げたということです。
InvokeEventはReasonというのがあります。どういう理由で立ち上がったかという意味です。
ここでは、StandardとOpenURLの2種類がありました。
OpenURLのときは、argumentsから実行されたのURLを読み取ることができます。
my.app.customurl://path/foo?bar=hoge&fuga=aaa
みたいな形です。
また、上を見ると分かるのですが、ActivateイベントがiOSだとない場合があったり、InvokeEventとActivateイベントがiOSとAndroidで実行順が入れ替わってたりしました。
起動時になんかやる必要がある場合は、このあたりに気をつければ大丈夫かなと思いました。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ