Я не могу закончить деятельность - PullRequest
1 голос
/ 30 июня 2019

Моя проблема в том ... У меня есть 3 занятия:

(ActivityA), (ActivityB) и (ActivityC)

Из ActivityA в ActivityB я использую следующий код:

val intent = Intent(this, ActivityB::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
startActivity(intent)
finish()

Из ActivityB в ActivityC Я также использую этот код:

val intent = Intent(this, ActivityC::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
startActivity(intent)
finish()

Но если я дам onBackPressed или перейду в любое другое приложение и вернусь в свое приложение, вместо того, чтобы вернуться в ActivityC, оно перейдет в ActivityA.

Ответы [ 4 ]

1 голос
/ 30 июня 2019

Используйте это вместо

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(intent)
finish()
0 голосов
/ 30 июня 2019

Из Действия A в Деятельность B делайте так -

val intent = Intent(this, ActivityB::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
finish()

А из Действия B в Деятельность C делай так -

val intent = Intent(this, ActivityC::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent)
finish()
0 голосов
/ 30 июня 2019

Вы должны удалить intent.addFlags (Intent.FLAG_ACTIVITY_NO_HISTORY).

Это очищает историю текущей активности.

0 голосов
/ 30 июня 2019

Вам нужно удалить Intent.FLAG_ACTIVITY_NO_HISTORY из Intent для запуска Activity C, так как флаг предотвращает добавление нового действия в задний стек и завершает действие, когда от него отказываются. Это означает, что ваше приложение запустится с активностью запуска, которая, как я полагаю, равна Activity A. Подробнее об этом флаге вы можете прочитать в документации .

...