ランチャー 最近再開したアイテムのラベルとアイコンが タスク。アプリ パッケージに複数のアプリが個別のランチャー アクティビティとして含まれる場合、ランチャーは、ランチャー以外のアクティビティ(タイルや通知から起動されるアクティビティなど)に対して表示するラベルとアイコンを認識しません。これにより、 アプリがランチャーの履歴リストや 可能性があります。
すべてのアクティビティにラベルを付加する
次の手順に示すように、マニフェスト ファイル内で、アクティビティ(ランチャー以外のアクティビティを含む)に対して適切にラベルが付加されていることを確認します。
図 1. 適切にラベル付けされたアクティビティの例。
AndroidManifest.xml
ファイル内のすべてのアクティビティについて、どのランチャー アクティビティに属しているかを判断します。- 親ランチャー アクティビティのアイコン、円形アイコン、ラベルを、関連付けられているランチャー以外の各アクティビティにコピーします。
複数のランチャー アクティビティ間で共有されるアクティビティについては、それらすべてを表す表示対象のアイコンとラベルを決定します。
RecentTask を割り当てる
ランチャーの [最近] に RecentTasks
を使用するには、taskAffinity
要素が AndroidManifest.xml
ファイルで正しく定義され、タスクとバックスタックを一貫して管理するようにします。
タスクを割り当てるときは、次の考慮事項を念頭に置いてください。
- アプリ内のタスクごとに一意の
taskAffinity
名を選択します。各ランチャー アクティビティとその子アクティビティは、1 つのタスクと考えることができます。このtaskAffinity
をマニフェスト ファイル内のすべての関連アクティビティに割り当てます。 FLAG_ACTIVITY_NEW_TASK
またはFLAG_ACTIVITY_CLEAR_TOP
でstartActivity()
を呼び出さないようにします。- トランポリン アクティビティ(他のアクティビティを起動するだけのアクティビティ)は作成しないようにします。スプラッシュ画面を作成するには、SplashScreen API を使用します。
- アクティビティを [最近] に表示しない場合は、
android:excludeFromRecents="true"
フラグとandroid:noHistory="true"
フラグを使用します。 - アクティビティに最適な起動モードを判断し、判断結果に留意して開発します。
デバッグのヒント
デバッグする際は、次の点に留意してください。
- 1 つのアプリの [最近] に 2 つのエントリがある場合は、
NEW_TASK
フラグを不適切に使用していないかどうかを確認します。 - 誤ったアイコンまたはラベルが表示されている場合は、関連付けられているランチャー以外の各アクティビティに、親アクティビティと同じアイコン、円形アイコン、ラベルが設定されていることを確認します。
- ランチャーのエントリをタップしても何も起動しない場合は、「ランチャー」でフィルタした Logcat にエラーがないか確認します。この問題はトランポリン アクティビティが原因で発生する場合があります。
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- タスクとバックスタック
- アプリ用のカスタム クイック設定タイルを作成する
- Jetpack Navigation について