Я потратил 3 дня, пытаясь решить эту проблему:
- ActivityA запускает ActivityB и завершает работу.
- Пользователь нажимает кнопку «Выход» в ActivityB, и я вызываю финиш B.
Я поставил флаг NO_HISTORY
на activityB
. Также я поставил Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
при запуске activityB
.
В манифесте все действия находятся в режиме portrait
.
Это прекрасно работает, когда начинаются действия без setScreenOrientation
в onCreate.
Проблема появляется, когда я звоню setScreenOrientation
. Это заставляет деятельность быть «возобновленной».
И проблема с должным финишем начинается. Обычно вторая попытка с финишем не перезапускается activityA
.
В некоторых случаях, если activityB
создается несколько раз - потеря фокуса и т. Д. Или вызов некоторых действий - несколько раз вызов Finish решает проблему :(
Похоже, у меня есть несколько экземпляров (B), и я должен обойти их все.