最近およびアプリの再開に表示する

ランチャーには、最近再開したタスクのラベルとアイコンが表示されます。アプリ パッケージに複数のアプリが個別のランチャー アクティビティとして含まれる場合、ランチャーは、ランチャー以外のアクティビティ(タイルや通知から起動されるアクティビティなど)に対して表示するラベルとアイコンを認識しません。そのため、アプリがランチャーの [最近] リストに表示されない、または誤って表示されることがあります。

すべてのアクティビティにラベルを付加する

次の手順に示すように、マニフェスト ファイル内で、アクティビティ(ランチャー以外のアクティビティを含む)に対して適切にラベルが付加されていることを確認します。

図 1. 適切にラベル付けされたアクティビティの例。

  1. AndroidManifest.xml ファイル内のすべてのアクティビティについて、どのランチャー アクティビティに属しているかを判断します。
  2. 親ランチャー アクティビティのアイコン、円形アイコン、ラベルを、関連付けられているランチャー以外の各アクティビティにコピーします。
  3. 複数のランチャー アクティビティ間で共有されるアクティビティについては、それらすべてを表す表示対象のアイコンとラベルを決定します。

RecentTask を割り当てる

ランチャーの [最近] に RecentTasks を使用するには、taskAffinity 要素が AndroidManifest.xml ファイルで正しく定義され、タスクとバックスタックを一貫して管理するようにします。

タスクを割り当てるときは、次の考慮事項を念頭に置いてください。

  • アプリ内のタスクごとに一意の taskAffinity 名を選択します。各ランチャー アクティビティとその子アクティビティは、1 つのタスクと考えることができます。この taskAffinity をマニフェスト ファイル内のすべての関連アクティビティに割り当てます。
  • FLAG_ACTIVITY_NEW_TASK または FLAG_ACTIVITY_CLEAR_TOPstartActivity() を呼び出さないようにします。
  • トランポリン アクティビティ(他のアクティビティを起動するだけのアクティビティ)は作成しないようにします。スプラッシュ画面を作成するには、SplashScreen API を使用します。
  • アクティビティを [最近] に表示しない場合は、android:excludeFromRecents="true" フラグと android:noHistory="true" フラグを使用します。
  • アクティビティに最適な起動モードを判断し、判断結果に留意して開発します。

デバッグのヒント

デバッグする際は、次の点に留意してください。

  • 1 つのアプリの [最近] に 2 つのエントリがある場合は、NEW_TASK フラグを不適切に使用していないかどうかを確認します。
  • 誤ったアイコンまたはラベルが表示されている場合は、関連付けられているランチャー以外の各アクティビティに、親アクティビティと同じアイコン、円形アイコン、ラベルが設定されていることを確認します。
  • ランチャーのエントリをタップしても何も起動しない場合は、「ランチャー」でフィルタした Logcat にエラーがないか確認します。この問題はトランポリン アクティビティが原因で発生する場合があります。