起動モードに関するドキュメントを読んでいますが、理解できないことが1つあります。ドキュメントによると、singleTask アクティビティは常にスタックのルートです。
対照的に、「singleTask」および「singleInstance」アクティビティは、タスクを開始することしかできません。それらは常にアクティビティ スタックのルートにあります。さらに、デバイスが一度に保持できるアクティビティのインスタンスは 1 つだけです。そのようなタスクは 1 つだけです。
しかし、図 4のドキュメントのこの部分を見ると、アクティビティ 2 がアクティビティ Y を開始する (そのタスクをフォアグラウンドに置く) ときに、アクティビティ Y が既にタスクの先頭にあり、現在のタスクの先頭になることがわかります。ルートではなく、タスク。
このシミュレーション アプリでこのシナリオを試しましたが、singleTask アクティビティを作成すると、常に新しいタスクが作成されます。ただし、唯一のインスタンスが既に存在する場合は、このインスタンスより上のすべてのアクティビティが終了するため、唯一のインスタンスがルート (およびタスク内の唯一のアクティビティ) になる可能性があります。
アクティビティ Y は、どのようにしてアクティビティ X の上のタスクの一番上になるのでしょうか?
私が行方不明になっている他の理由はありますか?
PS: Task と back stack の違いもよくわかりません。