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