読者です 読者をやめる 読者になる 読者になる

世界のやまさ

SEKAI NO YAMASA

Android の自作ホームアプリでホームボタンが効かないときの対処

Android のホームアプリの情報って少なくてハマったので断片だけメモ。

ホームアプリは AndroidManifest.xml<category android:name="android.intent.category.HOME"/>を追加すればいいだけ。

大体これでクリアできたんだけど、再起動後に問題があって、ホームボタンを押してもうんともすんとも言わない。正確にはイベント(onCreate()やonResume()等)が来ない状態となってしまった。

SDKに付属しているサンプルのホームアプリも同様の現象が起きるようだった。android-sdk-macosx/samples/android-16/Home/src/com/example/android/home/

こういう時はオープンソースの強みということで、デフォルトのランチャーのソースを見ることにした。https://android.googlesource.com/platform/packages/apps/Launcher2

結果、 AndroidManifest.xml の activity に以下が記載されており、自作ホームアプリに組み込むことでイベントが来るようになって解決した。

android:stateNotNeeded="true"
android:clearTaskOnLaunch="true"

AndroidManifest.xml 詳細を見ると、clearTaskOnLaunch の効果があったのかなと思います。

こういうことはデバッガで追ってもわからないし、LogCat にも何も出ないし、Android Hacks にも載ってなかった。もうちょっと Android の基礎力が必要と感じました。