Какой метод активности вызывается при изменении ориентации?

Какой метод жизненного цикла вызывается при изменении ориентации? Мое приложение выполняет метод onResume() или, возможно, перезагружает всю активность, потому что я установил одно логическое значение, чтобы проверить, запускается он или нет. Я прочитал начало onConfigurationChanged(), когда происходит изменение ориентации, верно ли это? Как справиться с этим?

Ответ 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.