Подтвердить что ты не робот

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

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

4b9b3361

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