Как вернуться с последней Activity на первую Activity и очистить весь back stack используя системные вызовы

«Как вернуться с последней Activity на первую Activity и очистить весь back stack используя системные вызовы» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для этого можно использовать 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() закрывает текущую активность.