Ответ 1
Интересный...
Действие начинается onResume()
, которое вы объявляете в своем XML по умолчанию.
И как я нашел из вопроса ответ на переполнение стека:
Изменение ориентации
- onSaveInstanceState
- OnPause
- OnStop
- OnCreate
- OnStart
- onRestoreInstanceState
- onResume
Переключиться на операцию 2
- onSaveInstanceState
- OnPause
Изменение ориентации WHILE IN Activity 2
- OnStop
- OnCreate
- OnStart
Отключение BACK FROM Activity2
- onResume
Я предполагаю, что поскольку действие 1 скрыто во время вращения, onRestoreInstanceState
не вызывается, потому что нет "представления" (т.е. его нельзя увидеть/просмотреть). Кроме того, вполне возможно иметь 2 совершенно разных файла макета для портрета/пейзажа, которые потенциально могут иметь разные элементы пользовательского интерфейса с разными идентификаторами.
В результате я бы сказал, если вы хотите использовать Bundle в onSaveInstanceState
, чтобы сохранить свои собственные данные, тогда вам нужно добавить дополнительную логику в onCreate
(в действии 1) для обработки ваших собственных данных там (так же как это делается условно в onRestoreInstanceState
).
В частности, вы могли бы сохранить поле "последней известной" ориентации, чтобы onCreate
знал, что ему нужно обработать ваши собственные данные, потому что ориентация изменилась, а не полагаться на вызываемый onRestoreInstanceState
.