Ответ
Для этого можно использовать Intent.FLAG_ACTIVITY_CLEAR_TOP и Intent.FLAG_ACTIVITY_NEW_TASK:
val intent = Intent(this, FirstActivity::class.java).apply {
flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
}
startActivity(intent)
finish()
Это создаст новый экземпляр FirstActivity, очистит весь стек активностей и поместит FirstActivity на вершину стека. Флаг CLEAR_TOP закрывает все активности выше целевой, а NEW_TASK создает новую задачу (если нужно). Метод finish() закрывает текущую активность.