Fini sh () не работает для активности на некоторых устройствах - PullRequest
2 голосов
/ 19 января 2020

Вот мой код

private fun startMainActivity() {
    startActivity(Intent(this, MainActivityTab::class.java))
    finish()
}

Работает нормально на всех устройствах, кроме моего устройства Samsung. Когда я нажимаю кнопку «Назад» в упражнении MainActivityTab, он возвращает меня к предыдущему занятию.

Как заставить это работать для всех устройств?

Устройство: Samsung A30s

1 Ответ

1 голос
/ 19 января 2020

Вы можете использовать флаг Intent, например FLAG_ACTIVITY_CLEAR_TASK и FLAG_ACTIVITY_NEW_TASK, чтобы достичь этого. Проверьте ниже:

val intent = Intent(this, MainActivityTab::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)

Это полностью очистит все предыдущие действия и запустит новое действие

Для перехода используйте любое из нижеприведенных действий в зависимости от ваших требований:

overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right)

Или

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
...