Мой вопрос был сформулирован не совсем правильно.Я немного упростил дело.Я использую Spinner, а не Button, чтобы перейти к следующему действию.
У Spinner (и Gallery) есть грубая ошибка, не упомянутая в документации - обработчик события OnItemSelectedListener вызывается, когда пользователь физически щелкаетуправление счетчиком, а также, когда счетчик впервые выложен с помощью кода платформы.Поэтому ваш код обработки счетчика должен определять, было ли событие вызвано выбором пользователя или размещением счетчика.Самый простой способ сделать это - сделать так, чтобы первый элемент в Spinner всегда был «еще не сделан выбор», и игнорировать все события в этом выборе.См. Выбор Android Spinner и аналогичные сообщения.
В моем случае изменение ориентации привело к тому, что спиннер снова выложился, и поэтому я получил от него два события, первое событие макета, вторая из ранее выбранной записи.И , что вызвало фальшивую вторую активность, и , что означало, что для «возврата» к первой операции потребовалось 3 нажатия кнопки «назад».На самом деле он возвращался к первому нажатию, затем спиннер запустил событие макета и обычное событие, дважды поместив меня во второе действие.Этого не было видно на экране, но было видно с помощью сообщений журнала.
При изменении ориентации текущее действие уничтожается, а новое действие создается / запускается.Когда вы изменяете ориентацию и нажимаете клавишу «Назад», предыдущее действие извлекается из верхней части приостановленного стека, уничтожается, и создается / запускается новая версия этого действия.
При изменении ориентации экрана действиев старой ориентации никогда не сохраняется.Он будет немедленно уничтожен или, если он окажется ниже паузы, он будет уничтожен, когда достигнет вершины.