Вы можете сделать это с помощью FLAG_ACTIVITY_CLEAR_TOP и FLAG_ACTIVITY_SINGLE_TOP .
Вам необходимо запустить A в качестве нового намерения, но установить эти два флага перед вызовом startActivity
Очистить вершину приводит к удалению всех действий в верхней части A.
Одиночная вершина приводит к тому, что намерение доставляется методу onNewIntent
A, а не уничтожает и воссоздает A.
Из документов:
Если установлено, и запускаемое действие уже выполняется в текущей задаче, то вместо запуска нового экземпляра этого действия все остальные действия поверхоно будет закрыто, и это намерение будет доставлено (теперь уже сверху) старому действию как новое намерение.Например, рассмотрим задачу, состоящую из действий: A, B, C, D. Если D вызывает startActivity () с намерением, которое разрешается к компоненту действия B, то C и D будут завершены, а B получит данное намерениев результате получается стек: A, B. Текущий запущенный экземпляр действия B в вышеприведенном примере либо получит новое намерение, которое вы начинаете здесь, в его методе onNewIntent (), либо сам завершится и перезапустится с новым намерением,Если он объявил свой режим запуска «множественным» (по умолчанию), и вы не установили FLAG_ACTIVITY_SINGLE_TOP в том же самом намерении, то он будет завершен и создан заново;для всех других режимов запуска или если установлен FLAG_ACTIVITY_SINGLE_TOP, то это намерение будет доставлено в onNewIntent () текущего экземпляра.Этот режим запуска также можно использовать для достижения хорошего эффекта в сочетании с FLAG_ACTIVITY_NEW_TASK: если он используется для запуска корневого действия задачи, он выведет любой запущенный в данный момент экземпляр этой задачи на передний план, а затем очистит его до корневого состояния.Это особенно полезно, например, при запуске действия из диспетчера уведомлений.См. Задачи и Back Stack для получения дополнительной информации о задачах.