Android Как я могу «перейти к другой ветке» в дереве «Back» предыдущего «Активность»?

Допустим, у меня есть такой стек: A-> B-> C-> D-> E, и в E есть действие, которое вызывает E, D, C и запускает F, так что я получаю A-> B -> F.

Как я могу построить такой задний стек? Могу ли я использовать startActivity B с FLAG_ACTIVITY_CLEAR_TOP, за которым следует startActivity F? Не будет ли первый startActivity закрыть E, прежде чем он сможет добавить F? Как я мог бы, например, иметь A-> B-> C и действие в C изменить его на A-> D-> E? Могу ли я использовать PendingIntent с TaskStackBuilder для этого?

Заранее спасибо! (Кстати, это мой первый вопрос!)

Чтобы очистить стек до B и затем запустить F , сделайте следующее:

 Intent intent = new Intent(this, B.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("startF", true); startActivity(intent); 

В B.onNewIntent() выполните следующее:

 if (intent.hasExtra("startF") { Intent startF = new Intent(this, F.class); startActivity(startF); } 

Вы можете использовать эту концепцию повсюду, чтобы вернуться в стек к определенной Деятельности, и сообщить этому Управлению, какую новую активность нужно запустить.