端末のバックボタンをRootのActivityで押下するとfinish()が呼ばれてアプリのタスクが終了してホーム画面に遷移する
※onDestroyが走る
端末のホームキーをどのActivityにいる状態で押下するとタスクが終了しないままホーム画面に遷移する。
※onDestroyが走らない
このホームキーと同じ動作をプログラムから行うことが出来る。
用途
なんだろうね、、、。ぱっと思いつかないけど、アプリが終了されちゃ困るアプリでRootのFinishをオーバーライドしてタスクを終了させないようにするとかだろうか?
最初はスプラッシュ画面→Top画面とかに遷移したいけど、2回目からはスプラッシュ画面を経由したくないとかで使えるかもしれない。
まぁ、タスクが切られると結局スプラッシュ画面から遷移するわけだけど。。。
そんなアプリの実装を今まで1度だけ見たことあるけど、その実装のせいで色々結構辛かったよ。うん。
実装
実装自体は超簡単にできる。
任意のタイミングで以下を呼び出す。
moveTaskToBack(true)
ちなみに引数をfalseにするとrootのActivityじゃないと無視されるようになる。