2015年1月10日土曜日

Android 4.4(KitKat)におけるホームアプリとバックボタンの挙動について

とても今更だがAndroid 4.4(KitKat)におけるホームアプリとバックボタンの
挙動について気になった所があったのでメモしておく。

ホームボタンで起動して、バックボタンで終了するホームアプリがある事を前提とする。
Android 4.4(KitKat)でホームボタンを押下してホームアプリを常時設定で起動した後、
バックボタンで終了したらどうなるか。

答えは別の実行中のホームアプリが表示される。
あるいは自分自身のホームアプリが再起動する。

本来ならばバックボタンで終了したらアプリ履歴順に使っていたアプリに遷移するのだが、
Android 4.4では挙動が異なるようだ。面白い事に、常時設定のホームアプリを起動すると、
その背後に別の実行中のホームアプリが遷移しているのである。以下に例を示す。

(1)ホームアプリ(非常時設定)が実行中にホームアプリ(常時設定)を起動する場合

例えば以下のようにアプリ履歴があった場合、

・アプリA
・アプリB
・ホームアプリ(常時設定)
・ホームアプリ(非常時設定)

Android 4.3(JellyBean)まではホームボタンを押下すると、

・ホームアプリ(常時設定)
・アプリA
・アプリB
・ホームアプリ(非常時設定)

という感じにアプリの階層が入れ替わる。
しかしAndroid 4.4でホームボタンを押下すると、

・ホームアプリ(常時設定)
・ホームアプリ(非常時設定)
・アプリA
・アプリB

という感じに何故かホームアプリ(非常時設定)がホームアプリ(常時設定)の背面に
遷移してしまう。これはホームアプリ(常時設定)の画面を透過させて起動すると
背面に遷移している事が確認出来る。よってホームアプリ(常時設定)の起動後に
バックキーを押下して終了するとホームアプリ(非常時設定)が表示されるのである。

(2)ホームアプリ(常時設定)を起動する場合

例えば以下のようにアプリ履歴があった場合、

・アプリA
・アプリB
・ホームアプリ(常時設定)

Android 4.4(JellyBean)以前、以降ともにホームボタンを押下すると、

・ホームアプリ(常時設定)
・アプリA
・アプリB

という感じにホームアプリ(常時設定)がトップに来る。この時にバックボタンを
押下するとAndroid 4.3まではアプリAに遷移していたが、Android 4.4では
ホームアプリ(自分自身)が再起動する。


上記(1)、(2)から分かった事は、どうやらAndroid 4.4ではバックボタンを押下して
アプリが遷移する際、常に1つ以上のホームアプリが実行している状態でないと
いけないらしい。本来ホームアプリはバックボタンで終了させないものなので、
このようにバックボタンでホームアプリを終了させた場合の挙動は気づかないと思う。

そのように作っているアプリが悪いのか、それとも挙動を変更したGoogleが
悪いのか知らないが、ホームボタン周りの挙動は鬼門だなぁと改めて思った。

0 件のコメント:

コメントを投稿