Androidのタスクについて
最終更新日:2016-08-05
タスクとは
タスクとは、起動したActivityをいれておくスタックです。ユーザーの視点にたつと、タスク=アプリと捉えることができます。オーバービュー画面で切り替えできることからわかるように、Android OS起動中、タスクは複数存在できます。その中で、ユーザーに画面を表示しているタスクをフォアグラウンドタスクと呼びます。
タスクの生成
通常、ホーム画面でアプリアイコンをタップした時、新しいタスクが生成されます。もしタップ時、そのアプリと同じタスクが生成されていた場合は新しいタスクを生成せず、タスク切り替えだけが行われます。
「通常」と書いたのは、上記とは違う動作をさせることができるためです。詳しくは起動モードを読んでください。
taskAffinity
先ほど、「そのアプリと同じタスクが生成されていた場合」と書きました。Android OSでは、タスク生成時に名前をつけ、同一名称であるかをその名前を用いて判定しています。この名前をtaskAffinityと呼び、基本的にアプリのパッケージ名が設定されます。
滅多にありませんが、1つのapkに複数のアプリ(=ホームから起動可能なActivity)を持たせることがあるかもしれません。この場合、AndroidManifest.xmlの該当Activityにandroid:taskAffinity属性を付けることで、「このActivityを新しいタスクとして起動する場合は、このタスク名で起動してね」という指定ができます。